From dfa25d5f00947e5f672f64d548d51cb0d93f6bc1 Mon Sep 17 00:00:00 2001 From: Danny Kopping Date: Fri, 28 Nov 2025 10:09:10 +0200 Subject: [PATCH 01/90] chore: document bedrock setup process for `aibridge` (#20956) (#20966) Cherry-pick of https://github.com/coder/coder/pull/20956 Signed-off-by: Danny Kopping --- .github/.linkspector.yml | 2 +- docs/ai-coder/ai-bridge/setup.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/.github/.linkspector.yml b/.github/.linkspector.yml index 18aeeae416fe2..50e9359f51523 100644 --- a/.github/.linkspector.yml +++ b/.github/.linkspector.yml @@ -27,7 +27,7 @@ ignorePatterns: - pattern: "splunk.com" - pattern: "stackoverflow.com/questions" - pattern: "developer.hashicorp.com/terraform/language" - - pattern: "platform.openai.com/docs/api-reference" + - pattern: "platform.openai.com" - pattern: "api.openai.com" aliveStatusCodes: - 200 diff --git a/docs/ai-coder/ai-bridge/setup.md b/docs/ai-coder/ai-bridge/setup.md index 3c0a4f7a839a1..b9ddbd56cdfb8 100644 --- a/docs/ai-coder/ai-bridge/setup.md +++ b/docs/ai-coder/ai-bridge/setup.md @@ -58,6 +58,34 @@ Set the following when routing [Amazon Bedrock](https://coder.com/docs/reference - `CODER_AIBRIDGE_BEDROCK_MODEL` or `--aibridge-bedrock-model` - `CODER_AIBRIDGE_BEDROCK_SMALL_FAST_MODEL` or `--aibridge-bedrock-small-fast-model` +#### Obtaining Bedrock credentials + +1. **Choose a region** where you want to use Bedrock. + +2. **Generate API keys** in the [AWS Bedrock console](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/api-keys/long-term/create) (replace `us-east-1` in the URL with your chosen region): + - Choose an expiry period for the key. + - Click **Generate**. + - This creates an IAM user with strictly-scoped permissions for Bedrock access. + +3. **Create an access key** for the IAM user: + - After generating the API key, click **"You can directly modify permissions for the IAM user associated"**. + - In the IAM user page, navigate to the **Security credentials** tab. + - Under **Access keys**, click **Create access key**. + - Select **"Application running outside AWS"** as the use case. + - Click **Next**. + - Add a description like "Coder AI Bridge token". + - Click **Create access key**. + - Save both the access key ID and secret access key securely. + +4. **Configure your Coder deployment** with the credentials: + + ```sh + export CODER_AIBRIDGE_BEDROCK_REGION=us-east-1 + export CODER_AIBRIDGE_BEDROCK_ACCESS_KEY= + export CODER_AIBRIDGE_BEDROCK_ACCESS_KEY_SECRET= + coder server + ``` + ### Additional providers and Model Proxies AI Bridge can relay traffic to other OpenAI- or Anthropic-compatible services or model proxies like LiteLLM by pointing the base URL variables above at the provider you operate. Share feedback or follow along in the [`aibridge`](https://github.com/coder/aibridge) issue tracker as we expand support for additional providers. From c0a2522bd684f9f9ebec1b78765be632a3ee6309 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Mon, 1 Dec 2025 22:06:44 +0200 Subject: [PATCH 02/90] fix(site): only show active tasks in waiting for input tab (#20933) (#20955) --- .../src/pages/TasksPage/TasksPage.stories.tsx | 42 ++++++++++++++++++- site/src/pages/TasksPage/TasksPage.tsx | 2 +- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/site/src/pages/TasksPage/TasksPage.stories.tsx b/site/src/pages/TasksPage/TasksPage.stories.tsx index 2e12d96983196..20fe21ee147cb 100644 --- a/site/src/pages/TasksPage/TasksPage.stories.tsx +++ b/site/src/pages/TasksPage/TasksPage.stories.tsx @@ -10,7 +10,7 @@ import { withAuthProvider, withProxyProvider } from "testHelpers/storybook"; import type { Meta, StoryObj } from "@storybook/react-vite"; import { API } from "api/api"; import { MockUsers } from "pages/UsersPage/storybookData/users"; -import { expect, spyOn, userEvent, within } from "storybook/test"; +import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; import { getTemplatesQueryKey } from "../../api/queries/templates"; import TasksPage from "./TasksPage"; @@ -145,6 +145,29 @@ export const LoadedTasksWaitingForInputTab: Story = { spyOn(API, "getTasks").mockResolvedValue([ { ...firstTask, + id: "active-idle-task", + display_name: "Active Idle Task", + status: "active", + current_state: { + ...firstTask.current_state, + state: "idle", + }, + }, + { + ...firstTask, + id: "paused-idle-task", + display_name: "Paused Idle Task", + status: "paused", + current_state: { + ...firstTask.current_state, + state: "idle", + }, + }, + { + ...firstTask, + id: "error-idle-task", + display_name: "Error Idle Task", + status: "error", current_state: { ...firstTask.current_state, state: "idle", @@ -161,6 +184,23 @@ export const LoadedTasksWaitingForInputTab: Story = { name: /waiting for input/i, }); await userEvent.click(waitingForInputTab); + + // Wait for the table to update after tab switch + await waitFor(async () => { + const table = canvas.getByRole("table"); + const tableContent = within(table); + + // Active idle task should be visible + expect(tableContent.getByText("Active Idle Task")).toBeInTheDocument(); + + // Only active idle tasks should be visible in the table + expect( + tableContent.queryByText("Paused Idle Task"), + ).not.toBeInTheDocument(); + expect( + tableContent.queryByText("Error Idle Task"), + ).not.toBeInTheDocument(); + }); }); }, }; diff --git a/site/src/pages/TasksPage/TasksPage.tsx b/site/src/pages/TasksPage/TasksPage.tsx index 7a19ee601bb26..7b37c0371e950 100644 --- a/site/src/pages/TasksPage/TasksPage.tsx +++ b/site/src/pages/TasksPage/TasksPage.tsx @@ -44,7 +44,7 @@ const TasksPage: FC = () => { refetchInterval: 10_000, }); const idleTasks = tasksQuery.data?.filter( - (task) => task.current_state?.state === "idle", + (task) => task.status === "active" && task.current_state?.state === "idle", ); const displayedTasks = tab.value === "waiting-for-input" ? idleTasks : tasksQuery.data; From cd9d3ef46f5b649e045f2f3fc9049d6ff94ab84f Mon Sep 17 00:00:00 2001 From: Jake Howell Date: Tue, 2 Dec 2025 07:07:18 +1100 Subject: [PATCH 03/90] fix: ensure we check if the user can actually see `ai bridge` (#20964) --- site/src/modules/dashboard/Navbar/DeploymentDropdown.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/src/modules/dashboard/Navbar/DeploymentDropdown.tsx b/site/src/modules/dashboard/Navbar/DeploymentDropdown.tsx index fc7825b3dfc7f..c84aae50fa1aa 100644 --- a/site/src/modules/dashboard/Navbar/DeploymentDropdown.tsx +++ b/site/src/modules/dashboard/Navbar/DeploymentDropdown.tsx @@ -34,7 +34,8 @@ export const DeploymentDropdown: FC = ({ !canViewConnectionLog && !canViewOrganizations && !canViewDeployment && - !canViewHealth + !canViewHealth && + !canViewAIBridge ) { return null; } From abe66a38ebbfe1b5489866643da1f2c9fdebea5e Mon Sep 17 00:00:00 2001 From: Sas Swart Date: Mon, 1 Dec 2025 22:07:40 +0200 Subject: [PATCH 04/90] feat: implement agent socket api, client and cli (#20758) (#20976) --- agent/agent.go | 39 +++ agent/agentsocket/client.go | 146 ++++++++ agent/agentsocket/server.go | 69 +--- agent/agentsocket/server_test.go | 94 ++++- agent/agentsocket/service.go | 14 +- agent/agentsocket/service_test.go | 265 +++++--------- agent/agentsocket/socket_unix.go | 44 +-- agent/agentsocket/socket_windows.go | 15 +- agent/unit/manager.go | 12 +- agent/unit/manager_test.go | 2 +- cli/agent.go | 17 + cli/root.go | 1 + cli/root_test.go | 25 ++ cli/sync.go | 35 ++ cli/sync_complete.go | 47 +++ cli/sync_ping.go | 42 +++ cli/sync_start.go | 101 ++++++ cli/sync_status.go | 88 +++++ cli/sync_test.go | 330 ++++++++++++++++++ cli/sync_want.go | 49 +++ .../complete_success.golden | 1 + .../ping_success.golden | 1 + .../start_no_dependencies.golden | 1 + .../start_with_dependencies.golden | 2 + .../status_completed.golden | 6 + .../status_json_format.golden | 13 + .../status_pending.golden | 7 + .../status_started.golden | 6 + .../status_with_dependencies.golden | 8 + .../want_success.golden | 1 + cli/testdata/coder_agent_--help.golden | 6 + cli/testdata/coder_exp_sync_--help.golden | 27 ++ .../coder_exp_sync_complete_--help.golden | 12 + .../coder_exp_sync_ping_--help.golden | 13 + .../coder_exp_sync_start_--help.golden | 17 + .../coder_exp_sync_status_--help.golden | 20 ++ .../coder_exp_sync_want_--help.golden | 13 + 37 files changed, 1313 insertions(+), 276 deletions(-) create mode 100644 agent/agentsocket/client.go create mode 100644 cli/sync.go create mode 100644 cli/sync_complete.go create mode 100644 cli/sync_ping.go create mode 100644 cli/sync_start.go create mode 100644 cli/sync_status.go create mode 100644 cli/sync_test.go create mode 100644 cli/sync_want.go create mode 100644 cli/testdata/TestSyncCommands_Golden/complete_success.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/ping_success.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/start_no_dependencies.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/start_with_dependencies.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/status_completed.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/status_json_format.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/status_pending.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/status_started.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/status_with_dependencies.golden create mode 100644 cli/testdata/TestSyncCommands_Golden/want_success.golden create mode 100644 cli/testdata/coder_exp_sync_--help.golden create mode 100644 cli/testdata/coder_exp_sync_complete_--help.golden create mode 100644 cli/testdata/coder_exp_sync_ping_--help.golden create mode 100644 cli/testdata/coder_exp_sync_start_--help.golden create mode 100644 cli/testdata/coder_exp_sync_status_--help.golden create mode 100644 cli/testdata/coder_exp_sync_want_--help.golden diff --git a/agent/agent.go b/agent/agent.go index 238aee9ad1dc1..8c8ec48ddf4eb 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -41,6 +41,7 @@ import ( "github.com/coder/coder/v2/agent/agentcontainers" "github.com/coder/coder/v2/agent/agentexec" "github.com/coder/coder/v2/agent/agentscripts" + "github.com/coder/coder/v2/agent/agentsocket" "github.com/coder/coder/v2/agent/agentssh" "github.com/coder/coder/v2/agent/proto" "github.com/coder/coder/v2/agent/proto/resourcesmonitor" @@ -97,6 +98,8 @@ type Options struct { Devcontainers bool DevcontainerAPIOptions []agentcontainers.Option // Enable Devcontainers for these to be effective. Clock quartz.Clock + SocketServerEnabled bool + SocketPath string // Path for the agent socket server socket } type Client interface { @@ -202,6 +205,8 @@ func New(options Options) Agent { devcontainers: options.Devcontainers, containerAPIOptions: options.DevcontainerAPIOptions, + socketPath: options.SocketPath, + socketServerEnabled: options.SocketServerEnabled, } // Initially, we have a closed channel, reflecting the fact that we are not initially connected. // Each time we connect we replace the channel (while holding the closeMutex) with a new one @@ -279,6 +284,10 @@ type agent struct { devcontainers bool containerAPIOptions []agentcontainers.Option containerAPI *agentcontainers.API + + socketServerEnabled bool + socketPath string + socketServer *agentsocket.Server } func (a *agent) TailnetConn() *tailnet.Conn { @@ -358,9 +367,32 @@ func (a *agent) init() { s.ExperimentalContainers = a.devcontainers }, ) + + a.initSocketServer() + go a.runLoop() } +// initSocketServer initializes server that allows direct communication with a workspace agent using IPC. +func (a *agent) initSocketServer() { + if !a.socketServerEnabled { + a.logger.Info(a.hardCtx, "socket server is disabled") + return + } + + server, err := agentsocket.NewServer( + a.logger.Named("socket"), + agentsocket.WithPath(a.socketPath), + ) + if err != nil { + a.logger.Warn(a.hardCtx, "failed to create socket server", slog.Error(err), slog.F("path", a.socketPath)) + return + } + + a.socketServer = server + a.logger.Debug(a.hardCtx, "socket server started", slog.F("path", a.socketPath)) +} + // runLoop attempts to start the agent in a retry loop. // Coder may be offline temporarily, a connection issue // may be happening, but regardless after the intermittent @@ -1928,6 +1960,7 @@ func (a *agent) Close() error { lifecycleState = codersdk.WorkspaceAgentLifecycleShutdownError } } + a.setLifecycle(lifecycleState) err = a.scriptRunner.Close() @@ -1935,6 +1968,12 @@ func (a *agent) Close() error { a.logger.Error(a.hardCtx, "script runner close", slog.Error(err)) } + if a.socketServer != nil { + if err := a.socketServer.Close(); err != nil { + a.logger.Error(a.hardCtx, "socket server close", slog.Error(err)) + } + } + if err := a.containerAPI.Close(); err != nil { a.logger.Error(a.hardCtx, "container API close", slog.Error(err)) } diff --git a/agent/agentsocket/client.go b/agent/agentsocket/client.go new file mode 100644 index 0000000000000..cc8810c9871e5 --- /dev/null +++ b/agent/agentsocket/client.go @@ -0,0 +1,146 @@ +package agentsocket + +import ( + "context" + + "golang.org/x/xerrors" + "storj.io/drpc" + "storj.io/drpc/drpcconn" + + "github.com/coder/coder/v2/agent/agentsocket/proto" + "github.com/coder/coder/v2/agent/unit" +) + +// Option represents a configuration option for NewClient. +type Option func(*options) + +type options struct { + path string +} + +// WithPath sets the socket path. If not provided or empty, the client will +// auto-discover the default socket path. +func WithPath(path string) Option { + return func(opts *options) { + if path == "" { + return + } + opts.path = path + } +} + +// Client provides a client for communicating with the workspace agentsocket API. +type Client struct { + client proto.DRPCAgentSocketClient + conn drpc.Conn +} + +// NewClient creates a new socket client and opens a connection to the socket. +// If path is not provided via WithPath or is empty, it will auto-discover the +// default socket path. +func NewClient(ctx context.Context, opts ...Option) (*Client, error) { + options := &options{} + for _, opt := range opts { + opt(options) + } + + conn, err := dialSocket(ctx, options.path) + if err != nil { + return nil, xerrors.Errorf("connect to socket: %w", err) + } + + drpcConn := drpcconn.New(conn) + client := proto.NewDRPCAgentSocketClient(drpcConn) + + return &Client{ + client: client, + conn: drpcConn, + }, nil +} + +// Close closes the socket connection. +func (c *Client) Close() error { + return c.conn.Close() +} + +// Ping sends a ping request to the agent. +func (c *Client) Ping(ctx context.Context) error { + _, err := c.client.Ping(ctx, &proto.PingRequest{}) + return err +} + +// SyncStart starts a unit in the dependency graph. +func (c *Client) SyncStart(ctx context.Context, unitName unit.ID) error { + _, err := c.client.SyncStart(ctx, &proto.SyncStartRequest{ + Unit: string(unitName), + }) + return err +} + +// SyncWant declares a dependency between units. +func (c *Client) SyncWant(ctx context.Context, unitName, dependsOn unit.ID) error { + _, err := c.client.SyncWant(ctx, &proto.SyncWantRequest{ + Unit: string(unitName), + DependsOn: string(dependsOn), + }) + return err +} + +// SyncComplete marks a unit as complete in the dependency graph. +func (c *Client) SyncComplete(ctx context.Context, unitName unit.ID) error { + _, err := c.client.SyncComplete(ctx, &proto.SyncCompleteRequest{ + Unit: string(unitName), + }) + return err +} + +// SyncReady requests whether a unit is ready to be started. That is, all dependencies are satisfied. +func (c *Client) SyncReady(ctx context.Context, unitName unit.ID) (bool, error) { + resp, err := c.client.SyncReady(ctx, &proto.SyncReadyRequest{ + Unit: string(unitName), + }) + return resp.Ready, err +} + +// SyncStatus gets the status of a unit and its dependencies. +func (c *Client) SyncStatus(ctx context.Context, unitName unit.ID) (SyncStatusResponse, error) { + resp, err := c.client.SyncStatus(ctx, &proto.SyncStatusRequest{ + Unit: string(unitName), + }) + if err != nil { + return SyncStatusResponse{}, err + } + + var dependencies []DependencyInfo + for _, dep := range resp.Dependencies { + dependencies = append(dependencies, DependencyInfo{ + DependsOn: unit.ID(dep.DependsOn), + RequiredStatus: unit.Status(dep.RequiredStatus), + CurrentStatus: unit.Status(dep.CurrentStatus), + IsSatisfied: dep.IsSatisfied, + }) + } + + return SyncStatusResponse{ + UnitName: unitName, + Status: unit.Status(resp.Status), + IsReady: resp.IsReady, + Dependencies: dependencies, + }, nil +} + +// SyncStatusResponse contains the status information for a unit. +type SyncStatusResponse struct { + UnitName unit.ID `table:"unit,default_sort" json:"unit_name"` + Status unit.Status `table:"status" json:"status"` + IsReady bool `table:"ready" json:"is_ready"` + Dependencies []DependencyInfo `table:"dependencies" json:"dependencies"` +} + +// DependencyInfo contains information about a unit dependency. +type DependencyInfo struct { + DependsOn unit.ID `table:"depends on,default_sort" json:"depends_on"` + RequiredStatus unit.Status `table:"required status" json:"required_status"` + CurrentStatus unit.Status `table:"current status" json:"current_status"` + IsSatisfied bool `table:"satisfied" json:"is_satisfied"` +} diff --git a/agent/agentsocket/server.go b/agent/agentsocket/server.go index c9f9a4ca42759..aed3afe4f7251 100644 --- a/agent/agentsocket/server.go +++ b/agent/agentsocket/server.go @@ -7,8 +7,6 @@ import ( "sync" "golang.org/x/xerrors" - - "github.com/hashicorp/yamux" "storj.io/drpc/drpcmux" "storj.io/drpc/drpcserver" @@ -33,11 +31,17 @@ type Server struct { wg sync.WaitGroup } -func NewServer(path string, logger slog.Logger) (*Server, error) { +// NewServer creates a new agent socket server. +func NewServer(logger slog.Logger, opts ...Option) (*Server, error) { + options := &options{} + for _, opt := range opts { + opt(options) + } + logger = logger.Named("agentsocket-server") server := &Server{ logger: logger, - path: path, + path: options.path, service: &DRPCAgentSocketService{ logger: logger, unitManager: unit.NewManager(), @@ -61,14 +65,6 @@ func NewServer(path string, logger slog.Logger) (*Server, error) { }, }) - if server.path == "" { - var err error - server.path, err = getDefaultSocketPath() - if err != nil { - return nil, xerrors.Errorf("get default socket path: %w", err) - } - } - listener, err := createSocket(server.path) if err != nil { return nil, xerrors.Errorf("create socket: %w", err) @@ -91,6 +87,7 @@ func NewServer(path string, logger slog.Logger) (*Server, error) { return server, nil } +// Close stops the server and cleans up resources. func (s *Server) Close() error { s.mu.Lock() @@ -134,52 +131,8 @@ func (s *Server) acceptConnections() { return } - for { - select { - case <-s.ctx.Done(): - return - default: - } - - conn, err := listener.Accept() - if err != nil { - s.logger.Warn(s.ctx, "error accepting connection", slog.Error(err)) - continue - } - - s.mu.Lock() - if s.listener == nil { - s.mu.Unlock() - _ = conn.Close() - return - } - s.wg.Add(1) - s.mu.Unlock() - - go func() { - defer s.wg.Done() - s.handleConnection(conn) - }() - } -} - -func (s *Server) handleConnection(conn net.Conn) { - defer conn.Close() - - s.logger.Debug(s.ctx, "new connection accepted", slog.F("remote_addr", conn.RemoteAddr())) - - config := yamux.DefaultConfig() - config.LogOutput = nil - config.Logger = slog.Stdlib(s.ctx, s.logger.Named("agentsocket-yamux"), slog.LevelInfo) - session, err := yamux.Server(conn, config) - if err != nil { - s.logger.Warn(s.ctx, "failed to create yamux session", slog.Error(err)) - return - } - defer session.Close() - - err = s.drpcServer.Serve(s.ctx, session) + err := s.drpcServer.Serve(s.ctx, listener) if err != nil { - s.logger.Debug(s.ctx, "drpc server finished", slog.Error(err)) + s.logger.Warn(s.ctx, "error serving drpc server", slog.Error(err)) } } diff --git a/agent/agentsocket/server_test.go b/agent/agentsocket/server_test.go index cf06aff170ba7..da74039c401d1 100644 --- a/agent/agentsocket/server_test.go +++ b/agent/agentsocket/server_test.go @@ -1,14 +1,24 @@ package agentsocket_test import ( + "context" "path/filepath" "runtime" "testing" + "github.com/google/uuid" + "github.com/spf13/afero" "github.com/stretchr/testify/require" "cdr.dev/slog" + "github.com/coder/coder/v2/agent" "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/agent/agenttest" + agentproto "github.com/coder/coder/v2/agent/proto" + "github.com/coder/coder/v2/codersdk/agentsdk" + "github.com/coder/coder/v2/tailnet" + "github.com/coder/coder/v2/tailnet/tailnettest" + "github.com/coder/coder/v2/testutil" ) func TestServer(t *testing.T) { @@ -23,7 +33,7 @@ func TestServer(t *testing.T) { socketPath := filepath.Join(t.TempDir(), "test.sock") logger := slog.Make().Leveled(slog.LevelDebug) - server, err := agentsocket.NewServer(socketPath, logger) + server, err := agentsocket.NewServer(logger, agentsocket.WithPath(socketPath)) require.NoError(t, err) require.NoError(t, server.Close()) }) @@ -33,10 +43,10 @@ func TestServer(t *testing.T) { socketPath := filepath.Join(t.TempDir(), "test.sock") logger := slog.Make().Leveled(slog.LevelDebug) - server1, err := agentsocket.NewServer(socketPath, logger) + server1, err := agentsocket.NewServer(logger, agentsocket.WithPath(socketPath)) require.NoError(t, err) defer server1.Close() - _, err = agentsocket.NewServer(socketPath, logger) + _, err = agentsocket.NewServer(logger, agentsocket.WithPath(socketPath)) require.ErrorContains(t, err, "create socket") }) @@ -45,8 +55,84 @@ func TestServer(t *testing.T) { socketPath := filepath.Join(t.TempDir(), "test.sock") logger := slog.Make().Leveled(slog.LevelDebug) - server, err := agentsocket.NewServer(socketPath, logger) + server, err := agentsocket.NewServer(logger, agentsocket.WithPath(socketPath)) require.NoError(t, err) require.NoError(t, server.Close()) }) } + +func TestServerWindowsNotSupported(t *testing.T) { + t.Parallel() + + if runtime.GOOS != "windows" { + t.Skip("this test only runs on Windows") + } + + t.Run("NewServer", func(t *testing.T) { + t.Parallel() + + socketPath := filepath.Join(t.TempDir(), "test.sock") + logger := slog.Make().Leveled(slog.LevelDebug) + _, err := agentsocket.NewServer(logger, agentsocket.WithPath(socketPath)) + require.ErrorContains(t, err, "agentsocket is not supported on Windows") + }) + + t.Run("NewClient", func(t *testing.T) { + t.Parallel() + + _, err := agentsocket.NewClient(context.Background(), agentsocket.WithPath("test.sock")) + require.ErrorContains(t, err, "agentsocket is not supported on Windows") + }) +} + +func TestAgentInitializesOnWindowsWithoutSocketServer(t *testing.T) { + t.Parallel() + + if runtime.GOOS != "windows" { + t.Skip("this test only runs on Windows") + } + + ctx := testutil.Context(t, testutil.WaitShort) + logger := testutil.Logger(t).Named("agent") + + derpMap, _ := tailnettest.RunDERPAndSTUN(t) + + coordinator := tailnet.NewCoordinator(logger) + t.Cleanup(func() { + _ = coordinator.Close() + }) + + statsCh := make(chan *agentproto.Stats, 50) + agentID := uuid.New() + manifest := agentsdk.Manifest{ + AgentID: agentID, + AgentName: "test-agent", + WorkspaceName: "test-workspace", + OwnerName: "test-user", + WorkspaceID: uuid.New(), + DERPMap: derpMap, + } + + client := agenttest.NewClient(t, logger.Named("agenttest"), agentID, manifest, statsCh, coordinator) + t.Cleanup(client.Close) + + options := agent.Options{ + Client: client, + Filesystem: afero.NewMemMapFs(), + Logger: logger.Named("agent"), + ReconnectingPTYTimeout: testutil.WaitShort, + EnvironmentVariables: map[string]string{}, + SocketPath: "", + } + + agnt := agent.New(options) + t.Cleanup(func() { + _ = agnt.Close() + }) + + startup := testutil.TryReceive(ctx, t, client.GetStartup()) + require.NotNil(t, startup, "agent should send startup message") + + err := agnt.Close() + require.NoError(t, err, "agent should close cleanly") +} diff --git a/agent/agentsocket/service.go b/agent/agentsocket/service.go index f3384dfd4393f..60248a8fe687b 100644 --- a/agent/agentsocket/service.go +++ b/agent/agentsocket/service.go @@ -15,15 +15,18 @@ var _ proto.DRPCAgentSocketServer = (*DRPCAgentSocketService)(nil) var ErrUnitManagerNotAvailable = xerrors.New("unit manager not available") +// DRPCAgentSocketService implements the DRPC agent socket service. type DRPCAgentSocketService struct { unitManager *unit.Manager logger slog.Logger } +// Ping responds to a ping request to check if the service is alive. func (*DRPCAgentSocketService) Ping(_ context.Context, _ *proto.PingRequest) (*proto.PingResponse, error) { return &proto.PingResponse{}, nil } +// SyncStart starts a unit in the dependency graph. func (s *DRPCAgentSocketService) SyncStart(_ context.Context, req *proto.SyncStartRequest) (*proto.SyncStartResponse, error) { if s.unitManager == nil { return nil, xerrors.Errorf("SyncStart: %w", ErrUnitManagerNotAvailable) @@ -53,6 +56,7 @@ func (s *DRPCAgentSocketService) SyncStart(_ context.Context, req *proto.SyncSta return &proto.SyncStartResponse{}, nil } +// SyncWant declares a dependency between units. func (s *DRPCAgentSocketService) SyncWant(_ context.Context, req *proto.SyncWantRequest) (*proto.SyncWantResponse, error) { if s.unitManager == nil { return nil, xerrors.Errorf("cannot add dependency: %w", ErrUnitManagerNotAvailable) @@ -72,6 +76,7 @@ func (s *DRPCAgentSocketService) SyncWant(_ context.Context, req *proto.SyncWant return &proto.SyncWantResponse{}, nil } +// SyncComplete marks a unit as complete in the dependency graph. func (s *DRPCAgentSocketService) SyncComplete(_ context.Context, req *proto.SyncCompleteRequest) (*proto.SyncCompleteResponse, error) { if s.unitManager == nil { return nil, xerrors.Errorf("cannot complete unit: %w", ErrUnitManagerNotAvailable) @@ -86,6 +91,7 @@ func (s *DRPCAgentSocketService) SyncComplete(_ context.Context, req *proto.Sync return &proto.SyncCompleteResponse{}, nil } +// SyncReady checks whether a unit is ready to be started. That is, all dependencies are satisfied. func (s *DRPCAgentSocketService) SyncReady(_ context.Context, req *proto.SyncReadyRequest) (*proto.SyncReadyResponse, error) { if s.unitManager == nil { return nil, xerrors.Errorf("cannot check readiness: %w", ErrUnitManagerNotAvailable) @@ -102,6 +108,7 @@ func (s *DRPCAgentSocketService) SyncReady(_ context.Context, req *proto.SyncRea }, nil } +// SyncStatus gets the status of a unit and lists its dependencies. func (s *DRPCAgentSocketService) SyncStatus(_ context.Context, req *proto.SyncStatusRequest) (*proto.SyncStatusResponse, error) { if s.unitManager == nil { return nil, xerrors.Errorf("cannot get status for unit %q: %w", req.Unit, ErrUnitManagerNotAvailable) @@ -115,8 +122,11 @@ func (s *DRPCAgentSocketService) SyncStatus(_ context.Context, req *proto.SyncSt } dependencies, err := s.unitManager.GetAllDependencies(unitID) - if err != nil { - return nil, xerrors.Errorf("failed to get dependencies: %w", err) + switch { + case errors.Is(err, unit.ErrUnitNotFound): + dependencies = []unit.Dependency{} + case err != nil: + return nil, xerrors.Errorf("cannot get dependencies: %w", err) } var depInfos []*proto.DependencyInfo diff --git a/agent/agentsocket/service_test.go b/agent/agentsocket/service_test.go index 0d6be345b9201..925703b63f76d 100644 --- a/agent/agentsocket/service_test.go +++ b/agent/agentsocket/service_test.go @@ -5,21 +5,18 @@ import ( "crypto/sha256" "encoding/hex" "fmt" - "net" "os" "path/filepath" "runtime" "testing" - "github.com/hashicorp/yamux" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "cdr.dev/slog" "github.com/coder/coder/v2/agent/agentsocket" - "github.com/coder/coder/v2/agent/agentsocket/proto" "github.com/coder/coder/v2/agent/unit" - "github.com/coder/coder/v2/codersdk/drpcsdk" + "github.com/coder/coder/v2/testutil" ) // tempDirUnixSocket returns a temporary directory that can safely hold unix @@ -47,23 +44,15 @@ func tempDirUnixSocket(t *testing.T) string { } // newSocketClient creates a DRPC client connected to the Unix socket at the given path. -func newSocketClient(t *testing.T, socketPath string) proto.DRPCAgentSocketClient { +func newSocketClient(ctx context.Context, t *testing.T, socketPath string) *agentsocket.Client { t.Helper() - conn, err := net.Dial("unix", socketPath) - require.NoError(t, err) - - config := yamux.DefaultConfig() - config.Logger = nil - session, err := yamux.Client(conn, config) - require.NoError(t, err) - - client := proto.NewDRPCAgentSocketClient(drpcsdk.MultiplexedConn(session)) - + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(socketPath)) t.Cleanup(func() { - _ = session.Close() - _ = conn.Close() + _ = client.Close() }) + require.NoError(t, err) + return client } @@ -78,17 +67,17 @@ func TestDRPCAgentSocketService(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) - _, err = client.Ping(context.Background(), &proto.PingRequest{}) + err = client.Ping(ctx) require.NoError(t, err) }) @@ -98,147 +87,116 @@ func TestDRPCAgentSocketService(t *testing.T) { t.Run("NewUnit", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) }) t.Run("UnitAlreadyStarted", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // First Start - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) // Second Start - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.ErrorContains(t, err, unit.ErrSameStatusAlreadySet.Error()) - status, err = client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err = client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) }) t.Run("UnitAlreadyCompleted", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // First start - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) // Complete the unit - _, err = client.SyncComplete(context.Background(), &proto.SyncCompleteRequest{ - Unit: "test-unit", - }) + err = client.SyncComplete(ctx, "test-unit") require.NoError(t, err) - status, err = client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err = client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "completed", status.Status) + require.Equal(t, unit.StatusComplete, status.Status) // Second start - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) - status, err = client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err = client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) }) t.Run("UnitNotReady", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "test-unit", - DependsOn: "dependency-unit", - }) + err = client.SyncWant(ctx, "test-unit", "dependency-unit") require.NoError(t, err) - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.ErrorContains(t, err, "unit not ready") - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, string(unit.StatusPending), status.Status) + require.Equal(t, unit.StatusPending, status.Status) require.False(t, status.IsReady) }) }) @@ -250,107 +208,86 @@ func TestDRPCAgentSocketService(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // If dependency units are not registered, they are registered automatically - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "test-unit", - DependsOn: "dependency-unit", - }) + err = client.SyncWant(ctx, "test-unit", "dependency-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) require.Len(t, status.Dependencies, 1) - require.Equal(t, "dependency-unit", status.Dependencies[0].DependsOn) - require.Equal(t, "completed", status.Dependencies[0].RequiredStatus) + require.Equal(t, unit.ID("dependency-unit"), status.Dependencies[0].DependsOn) + require.Equal(t, unit.StatusComplete, status.Dependencies[0].RequiredStatus) }) t.Run("DependencyAlreadyRegistered", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // Start the dependency unit - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "dependency-unit", - }) + err = client.SyncStart(ctx, "dependency-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "dependency-unit", - }) + status, err := client.SyncStatus(ctx, "dependency-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) // Add the dependency after the dependency unit has already started - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "test-unit", - DependsOn: "dependency-unit", - }) + err = client.SyncWant(ctx, "test-unit", "dependency-unit") // Dependencies can be added even if the dependency unit has already started require.NoError(t, err) // The dependency is now reflected in the test unit's status - status, err = client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err = client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "dependency-unit", status.Dependencies[0].DependsOn) - require.Equal(t, "completed", status.Dependencies[0].RequiredStatus) + require.Equal(t, unit.ID("dependency-unit"), status.Dependencies[0].DependsOn) + require.Equal(t, unit.StatusComplete, status.Dependencies[0].RequiredStatus) }) t.Run("DependencyAddedAfterDependentStarted", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // Start the dependent unit - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) - status, err := client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err := client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "started", status.Status) + require.Equal(t, unit.StatusStarted, status.Status) // Add the dependency after the dependency unit has already started - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "test-unit", - DependsOn: "dependency-unit", - }) + err = client.SyncWant(ctx, "test-unit", "dependency-unit") // Dependencies can be added even if the dependent unit has already started. // The dependency applies the next time a unit is started. The current status is not updated. @@ -359,12 +296,10 @@ func TestDRPCAgentSocketService(t *testing.T) { require.NoError(t, err) // The dependency is now reflected in the test unit's status - status, err = client.SyncStatus(context.Background(), &proto.SyncStatusRequest{ - Unit: "test-unit", - }) + status, err = client.SyncStatus(ctx, "test-unit") require.NoError(t, err) - require.Equal(t, "dependency-unit", status.Dependencies[0].DependsOn) - require.Equal(t, "completed", status.Dependencies[0].RequiredStatus) + require.Equal(t, unit.ID("dependency-unit"), status.Dependencies[0].DependsOn) + require.Equal(t, unit.StatusComplete, status.Dependencies[0].RequiredStatus) }) }) @@ -375,96 +310,80 @@ func TestDRPCAgentSocketService(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) - response, err := client.SyncReady(context.Background(), &proto.SyncReadyRequest{ - Unit: "unregistered-unit", - }) + ready, err := client.SyncReady(ctx, "unregistered-unit") require.NoError(t, err) - require.False(t, response.Ready) + require.True(t, ready) }) t.Run("UnitNotReady", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // Register a unit with an unsatisfied dependency - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "test-unit", - DependsOn: "dependency-unit", - }) + err = client.SyncWant(ctx, "test-unit", "dependency-unit") require.NoError(t, err) // Check readiness - should be false because dependency is not satisfied - response, err := client.SyncReady(context.Background(), &proto.SyncReadyRequest{ - Unit: "test-unit", - }) + ready, err := client.SyncReady(ctx, "test-unit") require.NoError(t, err) - require.False(t, response.Ready) + require.False(t, ready) }) t.Run("UnitReady", func(t *testing.T) { t.Parallel() socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") - + ctx := testutil.Context(t, testutil.WaitShort) server, err := agentsocket.NewServer( - socketPath, slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), ) require.NoError(t, err) defer server.Close() - client := newSocketClient(t, socketPath) + client := newSocketClient(ctx, t, socketPath) // Register a unit with no dependencies - should be ready immediately - _, err = client.SyncStart(context.Background(), &proto.SyncStartRequest{ - Unit: "test-unit", - }) + err = client.SyncStart(ctx, "test-unit") require.NoError(t, err) // Check readiness - should be true - _, err = client.SyncReady(context.Background(), &proto.SyncReadyRequest{ - Unit: "test-unit", - }) + ready, err := client.SyncReady(ctx, "test-unit") require.NoError(t, err) + require.True(t, ready) // Also test a unit with satisfied dependencies - _, err = client.SyncWant(context.Background(), &proto.SyncWantRequest{ - Unit: "dependent-unit", - DependsOn: "test-unit", - }) + err = client.SyncWant(ctx, "dependent-unit", "test-unit") require.NoError(t, err) // Complete the dependency - _, err = client.SyncComplete(context.Background(), &proto.SyncCompleteRequest{ - Unit: "test-unit", - }) + err = client.SyncComplete(ctx, "test-unit") require.NoError(t, err) // Now dependent-unit should be ready - _, err = client.SyncReady(context.Background(), &proto.SyncReadyRequest{ - Unit: "dependent-unit", - }) + ready, err = client.SyncReady(ctx, "dependent-unit") require.NoError(t, err) + require.True(t, ready) }) }) } diff --git a/agent/agentsocket/socket_unix.go b/agent/agentsocket/socket_unix.go index 0fa062656ae87..7492fb1d033c8 100644 --- a/agent/agentsocket/socket_unix.go +++ b/agent/agentsocket/socket_unix.go @@ -3,8 +3,7 @@ package agentsocket import ( - "crypto/rand" - "encoding/hex" + "context" "net" "os" "path/filepath" @@ -13,8 +12,13 @@ import ( "golang.org/x/xerrors" ) -// createSocket creates a Unix domain socket listener +const defaultSocketPath = "/tmp/coder-agent.sock" + func createSocket(path string) (net.Listener, error) { + if path == "" { + path = defaultSocketPath + } + if !isSocketAvailable(path) { return nil, xerrors.Errorf("socket path %s is not available", path) } @@ -23,7 +27,6 @@ func createSocket(path string) (net.Listener, error) { return nil, xerrors.Errorf("remove existing socket: %w", err) } - // Create parent directory if it doesn't exist parentDir := filepath.Dir(path) if err := os.MkdirAll(parentDir, 0o700); err != nil { return nil, xerrors.Errorf("create socket directory: %w", err) @@ -41,43 +44,30 @@ func createSocket(path string) (net.Listener, error) { return listener, nil } -// getDefaultSocketPath returns the default socket path for Unix-like systems -func getDefaultSocketPath() (string, error) { - randomBytes := make([]byte, 4) - if _, err := rand.Read(randomBytes); err != nil { - return "", xerrors.Errorf("generate random socket name: %w", err) - } - randomSuffix := hex.EncodeToString(randomBytes) - - // Try XDG_RUNTIME_DIR first - if runtimeDir := os.Getenv("XDG_RUNTIME_DIR"); runtimeDir != "" { - return filepath.Join(runtimeDir, "coder-agent-"+randomSuffix+".sock"), nil - } - - return filepath.Join("/tmp", "coder-agent-"+randomSuffix+".sock"), nil -} - -// CleanupSocket removes the socket file func cleanupSocket(path string) error { return os.Remove(path) } -// isSocketAvailable checks if a socket path is available for use func isSocketAvailable(path string) bool { - // Check if file exists if _, err := os.Stat(path); os.IsNotExist(err) { return true } - // Try to connect to see if it's actually listening + // Try to connect to see if it's actually listening. dialer := net.Dialer{Timeout: 10 * time.Second} conn, err := dialer.Dial("unix", path) if err != nil { - // If we can't connect, the socket is not in use - // Socket is available for use return true } _ = conn.Close() - // Socket is in use return false } + +func dialSocket(ctx context.Context, path string) (net.Conn, error) { + if path == "" { + path = defaultSocketPath + } + + dialer := net.Dialer{} + return dialer.DialContext(ctx, "unix", path) +} diff --git a/agent/agentsocket/socket_windows.go b/agent/agentsocket/socket_windows.go index 69785de43e96e..e39c8ae3d9236 100644 --- a/agent/agentsocket/socket_windows.go +++ b/agent/agentsocket/socket_windows.go @@ -3,25 +3,20 @@ package agentsocket import ( + "context" "net" "golang.org/x/xerrors" ) -// createSocket returns an error indicating that agentsocket is not supported on Windows. -// This feature is unix-only in its current experimental state. func createSocket(_ string) (net.Listener, error) { return nil, xerrors.New("agentsocket is not supported on Windows") } -// getDefaultSocketPath returns an error indicating that agentsocket is not supported on Windows. -// This feature is unix-only in its current experimental state. -func getDefaultSocketPath() (string, error) { - return "", xerrors.New("agentsocket is not supported on Windows") -} - -// cleanupSocket is a no-op on Windows since agentsocket is not supported. func cleanupSocket(_ string) error { - // No-op since agentsocket is not supported on Windows return nil } + +func dialSocket(_ context.Context, _ string) (net.Conn, error) { + return nil, xerrors.New("agentsocket is not supported on Windows") +} diff --git a/agent/unit/manager.go b/agent/unit/manager.go index 14727d43f93b6..88185d3f5ee26 100644 --- a/agent/unit/manager.go +++ b/agent/unit/manager.go @@ -2,6 +2,7 @@ package unit import ( "errors" + "fmt" "sync" "golang.org/x/xerrors" @@ -23,6 +24,15 @@ var ( // Status represents the status of a unit. type Status string +var _ fmt.Stringer = Status("") + +func (s Status) String() string { + if s == StatusNotRegistered { + return "not registered" + } + return string(s) +} + // Status constants for dependency tracking. const ( StatusNotRegistered Status = "" @@ -137,7 +147,7 @@ func (m *Manager) IsReady(id ID) (bool, error) { defer m.mu.RUnlock() if !m.registered(id) { - return false, nil + return true, nil } return m.units[id].ready, nil diff --git a/agent/unit/manager_test.go b/agent/unit/manager_test.go index 0f1eab93ab193..1729a047a9b54 100644 --- a/agent/unit/manager_test.go +++ b/agent/unit/manager_test.go @@ -684,7 +684,7 @@ func TestManager_IsReady(t *testing.T) { // Then: the unit is not ready isReady, err := manager.IsReady(unitA) require.NoError(t, err) - assert.False(t, isReady) + assert.True(t, isReady) }) } diff --git a/cli/agent.go b/cli/agent.go index 5d7738d3f4b75..56a8720a4116f 100644 --- a/cli/agent.go +++ b/cli/agent.go @@ -57,6 +57,8 @@ func workspaceAgent() *serpent.Command { devcontainers bool devcontainerProjectDiscovery bool devcontainerDiscoveryAutostart bool + socketServerEnabled bool + socketPath string ) agentAuth := &AgentAuth{} cmd := &serpent.Command{ @@ -317,6 +319,8 @@ func workspaceAgent() *serpent.Command { agentcontainers.WithProjectDiscovery(devcontainerProjectDiscovery), agentcontainers.WithDiscoveryAutostart(devcontainerDiscoveryAutostart), }, + SocketPath: socketPath, + SocketServerEnabled: socketServerEnabled, }) if debugAddress != "" { @@ -477,6 +481,19 @@ func workspaceAgent() *serpent.Command { Description: "Allow the agent to autostart devcontainer projects it discovers based on their configuration.", Value: serpent.BoolOf(&devcontainerDiscoveryAutostart), }, + { + Flag: "socket-server-enabled", + Default: "false", + Env: "CODER_AGENT_SOCKET_SERVER_ENABLED", + Description: "Enable the agent socket server.", + Value: serpent.BoolOf(&socketServerEnabled), + }, + { + Flag: "socket-path", + Env: "CODER_AGENT_SOCKET_PATH", + Description: "Specify the path for the agent socket.", + Value: serpent.StringOf(&socketPath), + }, } agentAuth.AttachOptions(cmd, false) return cmd diff --git a/cli/root.go b/cli/root.go index 2ec035d64ab6d..64615955be066 100644 --- a/cli/root.go +++ b/cli/root.go @@ -150,6 +150,7 @@ func (r *RootCmd) AGPLExperimental() []*serpent.Command { r.mcpCommand(), r.promptExample(), r.rptyCommand(), + r.syncCommand(), r.boundary(), } } diff --git a/cli/root_test.go b/cli/root_test.go index b9b230413859b..4e4c9c2399654 100644 --- a/cli/root_test.go +++ b/cli/root_test.go @@ -72,6 +72,31 @@ func TestCommandHelp(t *testing.T) { Name: "coder provisioner jobs list --output json", Cmd: []string{"provisioner", "jobs", "list", "--output", "json"}, }, + // TODO (SasSwart): Remove these once the sync commands are promoted out of experimental. + clitest.CommandHelpCase{ + Name: "coder exp sync --help", + Cmd: []string{"exp", "sync", "--help"}, + }, + clitest.CommandHelpCase{ + Name: "coder exp sync ping --help", + Cmd: []string{"exp", "sync", "ping", "--help"}, + }, + clitest.CommandHelpCase{ + Name: "coder exp sync start --help", + Cmd: []string{"exp", "sync", "start", "--help"}, + }, + clitest.CommandHelpCase{ + Name: "coder exp sync want --help", + Cmd: []string{"exp", "sync", "want", "--help"}, + }, + clitest.CommandHelpCase{ + Name: "coder exp sync complete --help", + Cmd: []string{"exp", "sync", "complete", "--help"}, + }, + clitest.CommandHelpCase{ + Name: "coder exp sync status --help", + Cmd: []string{"exp", "sync", "status", "--help"}, + }, )) } diff --git a/cli/sync.go b/cli/sync.go new file mode 100644 index 0000000000000..1d3d344ba6f67 --- /dev/null +++ b/cli/sync.go @@ -0,0 +1,35 @@ +package cli + +import ( + "github.com/coder/serpent" +) + +func (r *RootCmd) syncCommand() *serpent.Command { + var socketPath string + + cmd := &serpent.Command{ + Use: "sync", + Short: "Manage unit dependencies for coordinated startup", + Long: "Commands for orchestrating unit startup order in workspaces. Units are most commonly coder scripts. Use these commands to declare dependencies between units, coordinate their startup sequence, and ensure units start only after their dependencies are ready. This helps prevent race conditions and startup failures.", + Handler: func(i *serpent.Invocation) error { + return i.Command.HelpHandler(i) + }, + Children: []*serpent.Command{ + r.syncPing(&socketPath), + r.syncStart(&socketPath), + r.syncWant(&socketPath), + r.syncComplete(&socketPath), + r.syncStatus(&socketPath), + }, + Options: serpent.OptionSet{ + { + Flag: "socket-path", + Env: "CODER_AGENT_SOCKET_PATH", + Description: "Specify the path for the agent socket.", + Value: serpent.StringOf(&socketPath), + }, + }, + } + + return cmd +} diff --git a/cli/sync_complete.go b/cli/sync_complete.go new file mode 100644 index 0000000000000..88a8117d1aa7d --- /dev/null +++ b/cli/sync_complete.go @@ -0,0 +1,47 @@ +package cli + +import ( + "golang.org/x/xerrors" + + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/agent/unit" + "github.com/coder/coder/v2/cli/cliui" + "github.com/coder/serpent" +) + +func (*RootCmd) syncComplete(socketPath *string) *serpent.Command { + cmd := &serpent.Command{ + Use: "complete ", + Short: "Mark a unit as complete", + Long: "Mark a unit as complete. Indicating to other units that it has completed its work. This allows units that depend on it to proceed with their startup.", + Handler: func(i *serpent.Invocation) error { + ctx := i.Context() + + if len(i.Args) != 1 { + return xerrors.New("exactly one unit name is required") + } + unit := unit.ID(i.Args[0]) + + opts := []agentsocket.Option{} + if *socketPath != "" { + opts = append(opts, agentsocket.WithPath(*socketPath)) + } + + client, err := agentsocket.NewClient(ctx, opts...) + if err != nil { + return xerrors.Errorf("connect to agent socket: %w", err) + } + defer client.Close() + + if err := client.SyncComplete(ctx, unit); err != nil { + return xerrors.Errorf("complete unit failed: %w", err) + } + + cliui.Info(i.Stdout, "Success") + + return nil + }, + } + + return cmd +} diff --git a/cli/sync_ping.go b/cli/sync_ping.go new file mode 100644 index 0000000000000..2e5e517375f06 --- /dev/null +++ b/cli/sync_ping.go @@ -0,0 +1,42 @@ +package cli + +import ( + "golang.org/x/xerrors" + + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/cli/cliui" + "github.com/coder/serpent" +) + +func (*RootCmd) syncPing(socketPath *string) *serpent.Command { + cmd := &serpent.Command{ + Use: "ping", + Short: "Test agent socket connectivity and health", + Long: "Test connectivity to the local Coder agent socket to verify the agent is running and responsive. Useful for troubleshooting startup issues or verifying the agent is accessible before running other sync commands.", + Handler: func(i *serpent.Invocation) error { + ctx := i.Context() + + opts := []agentsocket.Option{} + if *socketPath != "" { + opts = append(opts, agentsocket.WithPath(*socketPath)) + } + + client, err := agentsocket.NewClient(ctx, opts...) + if err != nil { + return xerrors.Errorf("connect to agent socket: %w", err) + } + defer client.Close() + + err = client.Ping(ctx) + if err != nil { + return xerrors.Errorf("ping failed: %w", err) + } + + cliui.Info(i.Stdout, "Success") + + return nil + }, + } + + return cmd +} diff --git a/cli/sync_start.go b/cli/sync_start.go new file mode 100644 index 0000000000000..c114a9b4ade08 --- /dev/null +++ b/cli/sync_start.go @@ -0,0 +1,101 @@ +package cli + +import ( + "context" + "time" + + "golang.org/x/xerrors" + + "github.com/coder/serpent" + + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/agent/unit" + "github.com/coder/coder/v2/cli/cliui" +) + +const ( + syncPollInterval = 1 * time.Second +) + +func (*RootCmd) syncStart(socketPath *string) *serpent.Command { + var timeout time.Duration + + cmd := &serpent.Command{ + Use: "start ", + Short: "Wait until all unit dependencies are satisfied", + Long: "Wait until all dependencies are satisfied, consider the unit to have started, then allow it to proceed. This command polls until dependencies are ready, then marks the unit as started.", + Handler: func(i *serpent.Invocation) error { + ctx := i.Context() + + if len(i.Args) != 1 { + return xerrors.New("exactly one unit name is required") + } + unitName := unit.ID(i.Args[0]) + + if timeout > 0 { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, timeout) + defer cancel() + } + + opts := []agentsocket.Option{} + if *socketPath != "" { + opts = append(opts, agentsocket.WithPath(*socketPath)) + } + + client, err := agentsocket.NewClient(ctx, opts...) + if err != nil { + return xerrors.Errorf("connect to agent socket: %w", err) + } + defer client.Close() + + ready, err := client.SyncReady(ctx, unitName) + if err != nil { + return xerrors.Errorf("error checking dependencies: %w", err) + } + + if !ready { + cliui.Infof(i.Stdout, "Waiting for dependencies of unit '%s' to be satisfied...", unitName) + + ticker := time.NewTicker(syncPollInterval) + defer ticker.Stop() + + pollLoop: + for { + select { + case <-ctx.Done(): + if ctx.Err() == context.DeadlineExceeded { + return xerrors.Errorf("timeout waiting for dependencies of unit '%s'", unitName) + } + return ctx.Err() + case <-ticker.C: + ready, err := client.SyncReady(ctx, unitName) + if err != nil { + return xerrors.Errorf("error checking dependencies: %w", err) + } + if ready { + break pollLoop + } + } + } + } + + if err := client.SyncStart(ctx, unitName); err != nil { + return xerrors.Errorf("start unit failed: %w", err) + } + + cliui.Info(i.Stdout, "Success") + + return nil + }, + } + + cmd.Options = append(cmd.Options, serpent.Option{ + Flag: "timeout", + Description: "Maximum time to wait for dependencies (e.g., 30s, 5m). 5m by default.", + Value: serpent.DurationOf(&timeout), + Default: "5m", + }) + + return cmd +} diff --git a/cli/sync_status.go b/cli/sync_status.go new file mode 100644 index 0000000000000..87e3c4ccdf6da --- /dev/null +++ b/cli/sync_status.go @@ -0,0 +1,88 @@ +package cli + +import ( + "fmt" + + "golang.org/x/xerrors" + + "github.com/coder/serpent" + + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/agent/unit" + "github.com/coder/coder/v2/cli/cliui" +) + +func (*RootCmd) syncStatus(socketPath *string) *serpent.Command { + formatter := cliui.NewOutputFormatter( + cliui.ChangeFormatterData( + cliui.TableFormat( + []agentsocket.DependencyInfo{}, + []string{ + "depends on", + "required status", + "current status", + "satisfied", + }, + ), + func(data any) (any, error) { + resp, ok := data.(agentsocket.SyncStatusResponse) + if !ok { + return nil, xerrors.Errorf("expected agentsocket.SyncStatusResponse, got %T", data) + } + return resp.Dependencies, nil + }), + cliui.JSONFormat(), + ) + + cmd := &serpent.Command{ + Use: "status ", + Short: "Show unit status and dependency state", + Long: "Show the current status of a unit, whether it is ready to start, and lists its dependencies. Shows which dependencies are satisfied and which are still pending. Supports multiple output formats.", + Handler: func(i *serpent.Invocation) error { + ctx := i.Context() + + if len(i.Args) != 1 { + return xerrors.New("exactly one unit name is required") + } + unit := unit.ID(i.Args[0]) + + opts := []agentsocket.Option{} + if *socketPath != "" { + opts = append(opts, agentsocket.WithPath(*socketPath)) + } + + client, err := agentsocket.NewClient(ctx, opts...) + if err != nil { + return xerrors.Errorf("connect to agent socket: %w", err) + } + defer client.Close() + + statusResp, err := client.SyncStatus(ctx, unit) + if err != nil { + return xerrors.Errorf("get status failed: %w", err) + } + + var out string + header := fmt.Sprintf("Unit: %s\nStatus: %s\nReady: %t\n\nDependencies:\n", unit, statusResp.Status, statusResp.IsReady) + if formatter.FormatID() == "table" && len(statusResp.Dependencies) == 0 { + out = header + "No dependencies found" + } else { + out, err = formatter.Format(ctx, statusResp) + if err != nil { + return xerrors.Errorf("format status: %w", err) + } + + if formatter.FormatID() == "table" { + out = header + out + } + } + + _, _ = fmt.Fprintln(i.Stdout, out) + + return nil + }, + } + + formatter.AttachOptions(&cmd.Options) + return cmd +} diff --git a/cli/sync_test.go b/cli/sync_test.go new file mode 100644 index 0000000000000..42dc38cbe699d --- /dev/null +++ b/cli/sync_test.go @@ -0,0 +1,330 @@ +//go:build !windows + +package cli_test + +import ( + "bytes" + "context" + "os" + "path/filepath" + "testing" + "time" + + "github.com/stretchr/testify/require" + + "cdr.dev/slog" + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/cli/clitest" + "github.com/coder/coder/v2/testutil" +) + +// setupSocketServer creates an agentsocket server at a temporary path for testing. +// Returns the socket path and a cleanup function. The path should be passed to +// sync commands via the --socket-path flag. +func setupSocketServer(t *testing.T) (path string, cleanup func()) { + t.Helper() + + // Use a temporary socket path for each test + socketPath := filepath.Join(tempDirUnixSocket(t), "test.sock") + + // Create parent directory if needed + parentDir := filepath.Dir(socketPath) + err := os.MkdirAll(parentDir, 0o700) + require.NoError(t, err, "create socket directory") + + server, err := agentsocket.NewServer( + slog.Make().Leveled(slog.LevelDebug), + agentsocket.WithPath(socketPath), + ) + require.NoError(t, err, "create socket server") + + // Return cleanup function + return socketPath, func() { + err := server.Close() + require.NoError(t, err, "close socket server") + _ = os.Remove(socketPath) + } +} + +func TestSyncCommands_Golden(t *testing.T) { + t.Parallel() + + t.Run("ping", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "ping", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err := inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/ping_success", outBuf.Bytes(), nil) + }) + + t.Run("start_no_dependencies", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "start", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err := inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/start_no_dependencies", outBuf.Bytes(), nil) + }) + + t.Run("start_with_dependencies", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Set up dependency: test-unit depends on dep-unit + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + + // Declare dependency + err = client.SyncWant(ctx, "test-unit", "dep-unit") + require.NoError(t, err) + client.Close() + + // Start a goroutine to complete the dependency after a short delay + // This simulates the dependency being satisfied while start is waiting + // The delay ensures the "Waiting..." message appears in the output + done := make(chan error, 1) + go func() { + // Wait a moment to let the start command begin waiting and print the message + time.Sleep(100 * time.Millisecond) + + compCtx := context.Background() + compClient, err := agentsocket.NewClient(compCtx, agentsocket.WithPath(path)) + if err != nil { + done <- err + return + } + defer compClient.Close() + + // Start and complete the dependency unit + err = compClient.SyncStart(compCtx, "dep-unit") + if err != nil { + done <- err + return + } + err = compClient.SyncComplete(compCtx, "dep-unit") + done <- err + }() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "start", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + // Run the start command - it should wait for the dependency + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + // Ensure the completion goroutine finished + select { + case err := <-done: + require.NoError(t, err, "complete dependency") + case <-time.After(time.Second): + // Goroutine should have finished by now + } + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/start_with_dependencies", outBuf.Bytes(), nil) + }) + + t.Run("want", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "want", "test-unit", "dep-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err := inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/want_success", outBuf.Bytes(), nil) + }) + + t.Run("complete", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // First start the unit + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncStart(ctx, "test-unit") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "complete", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/complete_success", outBuf.Bytes(), nil) + }) + + t.Run("status_pending", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Set up a unit with unsatisfied dependency + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncWant(ctx, "test-unit", "dep-unit") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "status", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/status_pending", outBuf.Bytes(), nil) + }) + + t.Run("status_started", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Start a unit + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncStart(ctx, "test-unit") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "status", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/status_started", outBuf.Bytes(), nil) + }) + + t.Run("status_completed", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Start and complete a unit + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncStart(ctx, "test-unit") + require.NoError(t, err) + err = client.SyncComplete(ctx, "test-unit") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "status", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/status_completed", outBuf.Bytes(), nil) + }) + + t.Run("status_with_dependencies", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Set up a unit with dependencies, some satisfied, some not + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncWant(ctx, "test-unit", "dep-1") + require.NoError(t, err) + err = client.SyncWant(ctx, "test-unit", "dep-2") + require.NoError(t, err) + // Complete dep-1, leave dep-2 incomplete + err = client.SyncStart(ctx, "dep-1") + require.NoError(t, err) + err = client.SyncComplete(ctx, "dep-1") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "status", "test-unit", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/status_with_dependencies", outBuf.Bytes(), nil) + }) + + t.Run("status_json_format", func(t *testing.T) { + t.Parallel() + path, cleanup := setupSocketServer(t) + defer cleanup() + + ctx := testutil.Context(t, testutil.WaitShort) + + // Set up a unit with dependencies + client, err := agentsocket.NewClient(ctx, agentsocket.WithPath(path)) + require.NoError(t, err) + err = client.SyncWant(ctx, "test-unit", "dep-unit") + require.NoError(t, err) + err = client.SyncStart(ctx, "dep-unit") + require.NoError(t, err) + err = client.SyncComplete(ctx, "dep-unit") + require.NoError(t, err) + client.Close() + + var outBuf bytes.Buffer + inv, _ := clitest.New(t, "exp", "sync", "status", "test-unit", "--output", "json", "--socket-path", path) + inv.Stdout = &outBuf + inv.Stderr = &outBuf + + err = inv.WithContext(ctx).Run() + require.NoError(t, err) + + clitest.TestGoldenFile(t, "TestSyncCommands_Golden/status_json_format", outBuf.Bytes(), nil) + }) +} diff --git a/cli/sync_want.go b/cli/sync_want.go new file mode 100644 index 0000000000000..10df920563087 --- /dev/null +++ b/cli/sync_want.go @@ -0,0 +1,49 @@ +package cli + +import ( + "golang.org/x/xerrors" + + "github.com/coder/serpent" + + "github.com/coder/coder/v2/agent/agentsocket" + "github.com/coder/coder/v2/agent/unit" + "github.com/coder/coder/v2/cli/cliui" +) + +func (*RootCmd) syncWant(socketPath *string) *serpent.Command { + cmd := &serpent.Command{ + Use: "want ", + Short: "Declare that a unit depends on another unit completing before it can start", + Long: "Declare that a unit depends on another unit completing before it can start. The unit specified first will not start until the second has signaled that it has completed.", + Handler: func(i *serpent.Invocation) error { + ctx := i.Context() + + if len(i.Args) != 2 { + return xerrors.New("exactly two arguments are required: unit and depends-on") + } + dependentUnit := unit.ID(i.Args[0]) + dependsOn := unit.ID(i.Args[1]) + + opts := []agentsocket.Option{} + if *socketPath != "" { + opts = append(opts, agentsocket.WithPath(*socketPath)) + } + + client, err := agentsocket.NewClient(ctx, opts...) + if err != nil { + return xerrors.Errorf("connect to agent socket: %w", err) + } + defer client.Close() + + if err := client.SyncWant(ctx, dependentUnit, dependsOn); err != nil { + return xerrors.Errorf("declare dependency failed: %w", err) + } + + cliui.Info(i.Stdout, "Success") + + return nil + }, + } + + return cmd +} diff --git a/cli/testdata/TestSyncCommands_Golden/complete_success.golden b/cli/testdata/TestSyncCommands_Golden/complete_success.golden new file mode 100644 index 0000000000000..35821117c8757 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/complete_success.golden @@ -0,0 +1 @@ +Success diff --git a/cli/testdata/TestSyncCommands_Golden/ping_success.golden b/cli/testdata/TestSyncCommands_Golden/ping_success.golden new file mode 100644 index 0000000000000..35821117c8757 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/ping_success.golden @@ -0,0 +1 @@ +Success diff --git a/cli/testdata/TestSyncCommands_Golden/start_no_dependencies.golden b/cli/testdata/TestSyncCommands_Golden/start_no_dependencies.golden new file mode 100644 index 0000000000000..35821117c8757 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/start_no_dependencies.golden @@ -0,0 +1 @@ +Success diff --git a/cli/testdata/TestSyncCommands_Golden/start_with_dependencies.golden b/cli/testdata/TestSyncCommands_Golden/start_with_dependencies.golden new file mode 100644 index 0000000000000..23256e9ad1275 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/start_with_dependencies.golden @@ -0,0 +1,2 @@ +Waiting for dependencies of unit 'test-unit' to be satisfied... +Success diff --git a/cli/testdata/TestSyncCommands_Golden/status_completed.golden b/cli/testdata/TestSyncCommands_Golden/status_completed.golden new file mode 100644 index 0000000000000..3fee6f914a988 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/status_completed.golden @@ -0,0 +1,6 @@ +Unit: test-unit +Status: completed +Ready: true + +Dependencies: +No dependencies found diff --git a/cli/testdata/TestSyncCommands_Golden/status_json_format.golden b/cli/testdata/TestSyncCommands_Golden/status_json_format.golden new file mode 100644 index 0000000000000..d84b2c9d715e6 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/status_json_format.golden @@ -0,0 +1,13 @@ +{ + "unit_name": "test-unit", + "status": "pending", + "is_ready": true, + "dependencies": [ + { + "depends_on": "dep-unit", + "required_status": "completed", + "current_status": "completed", + "is_satisfied": true + } + ] +} diff --git a/cli/testdata/TestSyncCommands_Golden/status_pending.golden b/cli/testdata/TestSyncCommands_Golden/status_pending.golden new file mode 100644 index 0000000000000..5c7e32726317a --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/status_pending.golden @@ -0,0 +1,7 @@ +Unit: test-unit +Status: pending +Ready: false + +Dependencies: +DEPENDS ON REQUIRED STATUS CURRENT STATUS SATISFIED +dep-unit completed not registered false diff --git a/cli/testdata/TestSyncCommands_Golden/status_started.golden b/cli/testdata/TestSyncCommands_Golden/status_started.golden new file mode 100644 index 0000000000000..0f9fc841fbb49 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/status_started.golden @@ -0,0 +1,6 @@ +Unit: test-unit +Status: started +Ready: true + +Dependencies: +No dependencies found diff --git a/cli/testdata/TestSyncCommands_Golden/status_with_dependencies.golden b/cli/testdata/TestSyncCommands_Golden/status_with_dependencies.golden new file mode 100644 index 0000000000000..50d86f5051835 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/status_with_dependencies.golden @@ -0,0 +1,8 @@ +Unit: test-unit +Status: pending +Ready: false + +Dependencies: +DEPENDS ON REQUIRED STATUS CURRENT STATUS SATISFIED +dep-1 completed completed true +dep-2 completed not registered false diff --git a/cli/testdata/TestSyncCommands_Golden/want_success.golden b/cli/testdata/TestSyncCommands_Golden/want_success.golden new file mode 100644 index 0000000000000..35821117c8757 --- /dev/null +++ b/cli/testdata/TestSyncCommands_Golden/want_success.golden @@ -0,0 +1 @@ +Success diff --git a/cli/testdata/coder_agent_--help.golden b/cli/testdata/coder_agent_--help.golden index 1f25fc6941ea1..d262c0d0c7618 100644 --- a/cli/testdata/coder_agent_--help.golden +++ b/cli/testdata/coder_agent_--help.golden @@ -67,6 +67,12 @@ OPTIONS: --script-data-dir string, $CODER_AGENT_SCRIPT_DATA_DIR (default: /tmp) Specify the location for storing script data. + --socket-path string, $CODER_AGENT_SOCKET_PATH + Specify the path for the agent socket. + + --socket-server-enabled bool, $CODER_AGENT_SOCKET_SERVER_ENABLED (default: false) + Enable the agent socket server. + --ssh-max-timeout duration, $CODER_AGENT_SSH_MAX_TIMEOUT (default: 72h) Specify the max timeout for a SSH connection, it is advisable to set it to a minimum of 60s, but no more than 72h. diff --git a/cli/testdata/coder_exp_sync_--help.golden b/cli/testdata/coder_exp_sync_--help.golden new file mode 100644 index 0000000000000..b30447351cdc6 --- /dev/null +++ b/cli/testdata/coder_exp_sync_--help.golden @@ -0,0 +1,27 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync [flags] + + Manage unit dependencies for coordinated startup + + Commands for orchestrating unit startup order in workspaces. Units are most + commonly coder scripts. Use these commands to declare dependencies between + units, coordinate their startup sequence, and ensure units start only after + their dependencies are ready. This helps prevent race conditions and startup + failures. + +SUBCOMMANDS: + complete Mark a unit as complete + ping Test agent socket connectivity and health + start Wait until all unit dependencies are satisfied + status Show unit status and dependency state + want Declare that a unit depends on another unit completing before it + can start + +OPTIONS: + --socket-path string, $CODER_AGENT_SOCKET_PATH + Specify the path for the agent socket. + +——— +Run `coder --help` for a list of global options. diff --git a/cli/testdata/coder_exp_sync_complete_--help.golden b/cli/testdata/coder_exp_sync_complete_--help.golden new file mode 100644 index 0000000000000..580d5a588b61a --- /dev/null +++ b/cli/testdata/coder_exp_sync_complete_--help.golden @@ -0,0 +1,12 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync complete + + Mark a unit as complete + + Mark a unit as complete. Indicating to other units that it has completed its + work. This allows units that depend on it to proceed with their startup. + +——— +Run `coder --help` for a list of global options. diff --git a/cli/testdata/coder_exp_sync_ping_--help.golden b/cli/testdata/coder_exp_sync_ping_--help.golden new file mode 100644 index 0000000000000..58444940b69cd --- /dev/null +++ b/cli/testdata/coder_exp_sync_ping_--help.golden @@ -0,0 +1,13 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync ping + + Test agent socket connectivity and health + + Test connectivity to the local Coder agent socket to verify the agent is + running and responsive. Useful for troubleshooting startup issues or verifying + the agent is accessible before running other sync commands. + +——— +Run `coder --help` for a list of global options. diff --git a/cli/testdata/coder_exp_sync_start_--help.golden b/cli/testdata/coder_exp_sync_start_--help.golden new file mode 100644 index 0000000000000..d87483130da9b --- /dev/null +++ b/cli/testdata/coder_exp_sync_start_--help.golden @@ -0,0 +1,17 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync start [flags] + + Wait until all unit dependencies are satisfied + + Wait until all dependencies are satisfied, consider the unit to have started, + then allow it to proceed. This command polls until dependencies are ready, + then marks the unit as started. + +OPTIONS: + --timeout duration (default: 5m) + Maximum time to wait for dependencies (e.g., 30s, 5m). 5m by default. + +——— +Run `coder --help` for a list of global options. diff --git a/cli/testdata/coder_exp_sync_status_--help.golden b/cli/testdata/coder_exp_sync_status_--help.golden new file mode 100644 index 0000000000000..ce7d8617be172 --- /dev/null +++ b/cli/testdata/coder_exp_sync_status_--help.golden @@ -0,0 +1,20 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync status [flags] + + Show unit status and dependency state + + Show the current status of a unit, whether it is ready to start, and lists its + dependencies. Shows which dependencies are satisfied and which are still + pending. Supports multiple output formats. + +OPTIONS: + -c, --column [depends on|required status|current status|satisfied] (default: depends on,required status,current status,satisfied) + Columns to display in table output. + + -o, --output table|json (default: table) + Output format. + +——— +Run `coder --help` for a list of global options. diff --git a/cli/testdata/coder_exp_sync_want_--help.golden b/cli/testdata/coder_exp_sync_want_--help.golden new file mode 100644 index 0000000000000..0076f94ea90f8 --- /dev/null +++ b/cli/testdata/coder_exp_sync_want_--help.golden @@ -0,0 +1,13 @@ +coder v0.0.0-devel + +USAGE: + coder exp sync want + + Declare that a unit depends on another unit completing before it can start + + Declare that a unit depends on another unit completing before it can start. + The unit specified first will not start until the second has signaled that it + has completed. + +——— +Run `coder --help` for a list of global options. From 10e70f8c511c7c6e21dbfb53b3d2550c529ca8b9 Mon Sep 17 00:00:00 2001 From: Susana Ferreira Date: Mon, 1 Dec 2025 20:08:01 +0000 Subject: [PATCH 05/90] fix: show task display name in task topbar (#20957) (#20980) Related to PR: https://github.com/coder/coder/pull/20957 (cherry picked from commit 21efebeadcf4bb3dba4335c0f51fb8ffb4840094) --- site/src/pages/TaskPage/TaskPage.stories.tsx | 33 ++++++++++++++++++++ site/src/pages/TaskPage/TaskTopbar.tsx | 6 ++-- site/src/testHelpers/entities.ts | 4 +-- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/site/src/pages/TaskPage/TaskPage.stories.tsx b/site/src/pages/TaskPage/TaskPage.stories.tsx index b0e191805c5d0..cfe4c90a65e00 100644 --- a/site/src/pages/TaskPage/TaskPage.stories.tsx +++ b/site/src/pages/TaskPage/TaskPage.stories.tsx @@ -1,5 +1,6 @@ import { MockDeletedWorkspace, + MockDisplayNameTasks, MockFailedWorkspace, MockStartingWorkspace, MockStoppedWorkspace, @@ -561,6 +562,38 @@ export const WorkspaceStartFailureWithDialog: Story = { }, }; +const longDisplayName = + "Implement comprehensive authentication and authorization system with role-based access control"; +export const LongDisplayName: Story = { + parameters: { + queries: [ + { + // Sidebar: uses getTasks() which returns an array + key: ["tasks", { owner: MockTask.owner_name }], + data: [ + { ...MockDisplayNameTasks[0], display_name: longDisplayName }, + ...MockDisplayNameTasks.slice(1), + ], + }, + { + // TaskTopbar: uses getTask() which returns a single task + key: ["tasks", MockTask.owner_name, MockTask.id], + data: { ...MockDisplayNameTasks[0], display_name: longDisplayName }, + }, + { + // Workspace data for the task + key: [ + "workspace", + MockTask.owner_name, + MockTask.workspace_name, + "settings", + ], + data: MockWorkspace, + }, + ], + }, +}; + function mockTaskWithWorkspace( sidebarApp: WorkspaceApp, activeApp: WorkspaceApp, diff --git a/site/src/pages/TaskPage/TaskTopbar.tsx b/site/src/pages/TaskPage/TaskTopbar.tsx index b5affcbfffe0b..41f4d7c0f7b71 100644 --- a/site/src/pages/TaskPage/TaskTopbar.tsx +++ b/site/src/pages/TaskPage/TaskTopbar.tsx @@ -23,7 +23,7 @@ type TaskTopbarProps = { task: Task; workspace: Workspace }; export const TaskTopbar: FC = ({ task, workspace }) => { return ( -
+
@@ -38,7 +38,9 @@ export const TaskTopbar: FC = ({ task, workspace }) => { -

{task.name}

+

+ {task.display_name} +

{task.current_state?.uri && (
diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 6c89deb873023..4c1087c7b328d 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -4971,8 +4971,8 @@ export const MockAIPromptPresets: TypesGen.Preset[] = [ export const MockTask = { id: "test-task", - name: "wild-test-123", - display_name: "Task wild test", + name: "perform-some-task-123", + display_name: "Perform some task", organization_id: MockOrganization.id, owner_id: MockUserOwner.id, owner_name: MockUserOwner.username, From 0bd0990e141f3f6338a7a42f738bab14aba49d8f Mon Sep 17 00:00:00 2001 From: Susana Ferreira Date: Mon, 1 Dec 2025 20:08:50 +0000 Subject: [PATCH 06/90] feat: add notification warning alert to Tasks page (#20900) (#20981) Related to PR: https://github.com/coder/coder/pull/20900 (cherry picked from commit f8d9a8046faebd5713c231ef8a25b0c1782721c9) --- coderd/apidoc/docs.go | 94 ++++++++++++ coderd/apidoc/swagger.json | 84 +++++++++++ coderd/coderd.go | 2 + coderd/database/dbauthz/dbauthz.go | 22 +++ coderd/database/dbauthz/dbauthz_test.go | 16 +++ coderd/database/dbmetrics/querymetrics.go | 14 ++ coderd/database/dbmock/dbmock.go | 30 ++++ coderd/database/querier.go | 2 + coderd/database/queries.sql.go | 44 ++++++ coderd/database/queries/users.sql | 23 +++ coderd/users.go | 68 +++++++++ coderd/users_test.go | 87 +++++++++-- codersdk/users.go | 36 +++++ docs/reference/api/schemas.md | 28 ++++ docs/reference/api/users.md | 84 +++++++++++ site/src/api/api.ts | 13 ++ site/src/api/queries/users.ts | 29 ++++ site/src/api/typesGenerated.ts | 10 ++ site/src/modules/notifications/utils.tsx | 30 ++++ .../src/pages/TasksPage/TasksPage.stories.tsx | 136 ++++++++++++++++++ site/src/pages/TasksPage/TasksPage.tsx | 65 ++++++++- .../NotificationsPage.stories.tsx | 68 ++++++++- .../NotificationsPage/NotificationsPage.tsx | 53 +++---- site/src/testHelpers/entities.ts | 29 +++- 24 files changed, 1028 insertions(+), 39 deletions(-) diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 186b54716dc18..f80959192d279 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -8387,6 +8387,84 @@ const docTemplate = `{ } } }, + "/users/{user}/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Get user preference settings", + "operationId": "get-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "Users" + ], + "summary": "Update user preference settings", + "operationId": "update-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "New preference settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + } + }, "/users/{user}/profile": { "put": { "security": [ @@ -19254,6 +19332,14 @@ const docTemplate = `{ } } }, + "codersdk.UpdateUserPreferenceSettingsRequest": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, "codersdk.UpdateUserProfileRequest": { "type": "object", "required": [ @@ -19639,6 +19725,14 @@ const docTemplate = `{ } } }, + "codersdk.UserPreferenceSettings": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, "codersdk.UserQuietHoursScheduleConfig": { "type": "object", "properties": { diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 097aa188f3e28..8d54e2b3109b7 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -7418,6 +7418,74 @@ } } }, + "/users/{user}/preferences": { + "get": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Get user preference settings", + "operationId": "get-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "tags": ["Users"], + "summary": "Update user preference settings", + "operationId": "update-user-preference-settings", + "parameters": [ + { + "type": "string", + "description": "User ID, name, or me", + "name": "user", + "in": "path", + "required": true + }, + { + "description": "New preference settings", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateUserPreferenceSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/codersdk.UserPreferenceSettings" + } + } + } + } + }, "/users/{user}/profile": { "put": { "security": [ @@ -17660,6 +17728,14 @@ } } }, + "codersdk.UpdateUserPreferenceSettingsRequest": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, "codersdk.UpdateUserProfileRequest": { "type": "object", "required": ["username"], @@ -18020,6 +18096,14 @@ } } }, + "codersdk.UserPreferenceSettings": { + "type": "object", + "properties": { + "task_notification_alert_dismissed": { + "type": "boolean" + } + } + }, "codersdk.UserQuietHoursScheduleConfig": { "type": "object", "properties": { diff --git a/coderd/coderd.go b/coderd/coderd.go index 641fd4e7f312c..e79a2226ba1f6 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -1336,6 +1336,8 @@ func New(options *Options) *API { }) r.Get("/appearance", api.userAppearanceSettings) r.Put("/appearance", api.putUserAppearanceSettings) + r.Get("/preferences", api.userPreferenceSettings) + r.Put("/preferences", api.putUserPreferenceSettings) r.Route("/password", func(r chi.Router) { r.Use(httpmw.RateLimit(options.LoginRateLimit, time.Minute)) r.Put("/", api.putUserPassword) diff --git a/coderd/database/dbauthz/dbauthz.go b/coderd/database/dbauthz/dbauthz.go index 2c29b90431d99..a4d801512e730 100644 --- a/coderd/database/dbauthz/dbauthz.go +++ b/coderd/database/dbauthz/dbauthz.go @@ -3431,6 +3431,17 @@ func (q *querier) GetUserStatusCounts(ctx context.Context, arg database.GetUserS return q.db.GetUserStatusCounts(ctx, arg) } +func (q *querier) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { + user, err := q.db.GetUserByID(ctx, userID) + if err != nil { + return false, err + } + if err := q.authorizeContext(ctx, policy.ActionReadPersonal, user); err != nil { + return false, err + } + return q.db.GetUserTaskNotificationAlertDismissed(ctx, userID) +} + func (q *querier) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) { u, err := q.db.GetUserByID(ctx, userID) if err != nil { @@ -5464,6 +5475,17 @@ func (q *querier) UpdateUserStatus(ctx context.Context, arg database.UpdateUserS return updateWithReturn(q.log, q.auth, fetch, q.db.UpdateUserStatus)(ctx, arg) } +func (q *querier) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg database.UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { + user, err := q.db.GetUserByID(ctx, arg.UserID) + if err != nil { + return false, err + } + if err := q.authorizeContext(ctx, policy.ActionUpdatePersonal, user); err != nil { + return false, err + } + return q.db.UpdateUserTaskNotificationAlertDismissed(ctx, arg) +} + func (q *querier) UpdateUserTerminalFont(ctx context.Context, arg database.UpdateUserTerminalFontParams) (database.UserConfig, error) { u, err := q.db.GetUserByID(ctx, arg.UserID) if err != nil { diff --git a/coderd/database/dbauthz/dbauthz_test.go b/coderd/database/dbauthz/dbauthz_test.go index d14429a1054cb..e70da620e167f 100644 --- a/coderd/database/dbauthz/dbauthz_test.go +++ b/coderd/database/dbauthz/dbauthz_test.go @@ -7,6 +7,7 @@ import ( "fmt" "net" "reflect" + "strconv" "testing" "time" @@ -1477,6 +1478,21 @@ func (s *MethodTestSuite) TestUser() { dbm.EXPECT().UpdateUserTerminalFont(gomock.Any(), arg).Return(uc, nil).AnyTimes() check.Args(arg).Asserts(u, policy.ActionUpdatePersonal).Returns(uc) })) + s.Run("GetUserTaskNotificationAlertDismissed", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { + u := testutil.Fake(s.T(), faker, database.User{}) + dbm.EXPECT().GetUserByID(gomock.Any(), u.ID).Return(u, nil).AnyTimes() + dbm.EXPECT().GetUserTaskNotificationAlertDismissed(gomock.Any(), u.ID).Return(false, nil).AnyTimes() + check.Args(u.ID).Asserts(u, policy.ActionReadPersonal).Returns(false) + })) + s.Run("UpdateUserTaskNotificationAlertDismissed", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { + user := testutil.Fake(s.T(), faker, database.User{}) + userConfig := database.UserConfig{UserID: user.ID, Key: "task_notification_alert_dismissed", Value: "false"} + userConfigValue, _ := strconv.ParseBool(userConfig.Value) + arg := database.UpdateUserTaskNotificationAlertDismissedParams{UserID: user.ID, TaskNotificationAlertDismissed: userConfigValue} + dbm.EXPECT().GetUserByID(gomock.Any(), user.ID).Return(user, nil).AnyTimes() + dbm.EXPECT().UpdateUserTaskNotificationAlertDismissed(gomock.Any(), arg).Return(false, nil).AnyTimes() + check.Args(arg).Asserts(user, policy.ActionUpdatePersonal).Returns(userConfigValue) + })) s.Run("UpdateUserStatus", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) { u := testutil.Fake(s.T(), faker, database.User{}) arg := database.UpdateUserStatusParams{ID: u.ID, Status: u.Status, UpdatedAt: u.UpdatedAt} diff --git a/coderd/database/dbmetrics/querymetrics.go b/coderd/database/dbmetrics/querymetrics.go index 89269b295cb52..cdad3598b35f7 100644 --- a/coderd/database/dbmetrics/querymetrics.go +++ b/coderd/database/dbmetrics/querymetrics.go @@ -1845,6 +1845,13 @@ func (m queryMetricsStore) GetUserStatusCounts(ctx context.Context, arg database return r0, r1 } +func (m queryMetricsStore) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { + start := time.Now() + r0, r1 := m.s.GetUserTaskNotificationAlertDismissed(ctx, userID) + m.queryLatencies.WithLabelValues("GetUserTaskNotificationAlertDismissed").Observe(time.Since(start).Seconds()) + return r0, r1 +} + func (m queryMetricsStore) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) { start := time.Now() r0, r1 := m.s.GetUserTerminalFont(ctx, userID) @@ -3350,6 +3357,13 @@ func (m queryMetricsStore) UpdateUserStatus(ctx context.Context, arg database.Up return user, err } +func (m queryMetricsStore) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg database.UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { + start := time.Now() + r0, r1 := m.s.UpdateUserTaskNotificationAlertDismissed(ctx, arg) + m.queryLatencies.WithLabelValues("UpdateUserTaskNotificationAlertDismissed").Observe(time.Since(start).Seconds()) + return r0, r1 +} + func (m queryMetricsStore) UpdateUserTerminalFont(ctx context.Context, arg database.UpdateUserTerminalFontParams) (database.UserConfig, error) { start := time.Now() r0, r1 := m.s.UpdateUserTerminalFont(ctx, arg) diff --git a/coderd/database/dbmock/dbmock.go b/coderd/database/dbmock/dbmock.go index ce50bf87d2099..03de5508e54d9 100644 --- a/coderd/database/dbmock/dbmock.go +++ b/coderd/database/dbmock/dbmock.go @@ -3942,6 +3942,21 @@ func (mr *MockStoreMockRecorder) GetUserStatusCounts(ctx, arg any) *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserStatusCounts", reflect.TypeOf((*MockStore)(nil).GetUserStatusCounts), ctx, arg) } +// GetUserTaskNotificationAlertDismissed mocks base method. +func (m *MockStore) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetUserTaskNotificationAlertDismissed", ctx, userID) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetUserTaskNotificationAlertDismissed indicates an expected call of GetUserTaskNotificationAlertDismissed. +func (mr *MockStoreMockRecorder) GetUserTaskNotificationAlertDismissed(ctx, userID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).GetUserTaskNotificationAlertDismissed), ctx, userID) +} + // GetUserTerminalFont mocks base method. func (m *MockStore) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) { m.ctrl.T.Helper() @@ -7174,6 +7189,21 @@ func (mr *MockStoreMockRecorder) UpdateUserStatus(ctx, arg any) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserStatus", reflect.TypeOf((*MockStore)(nil).UpdateUserStatus), ctx, arg) } +// UpdateUserTaskNotificationAlertDismissed mocks base method. +func (m *MockStore) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg database.UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateUserTaskNotificationAlertDismissed", ctx, arg) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateUserTaskNotificationAlertDismissed indicates an expected call of UpdateUserTaskNotificationAlertDismissed. +func (mr *MockStoreMockRecorder) UpdateUserTaskNotificationAlertDismissed(ctx, arg any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateUserTaskNotificationAlertDismissed", reflect.TypeOf((*MockStore)(nil).UpdateUserTaskNotificationAlertDismissed), ctx, arg) +} + // UpdateUserTerminalFont mocks base method. func (m *MockStore) UpdateUserTerminalFont(ctx context.Context, arg database.UpdateUserTerminalFontParams) (database.UserConfig, error) { m.ctrl.T.Helper() diff --git a/coderd/database/querier.go b/coderd/database/querier.go index 5c249f3bdf1c2..7997d7f085c1a 100644 --- a/coderd/database/querier.go +++ b/coderd/database/querier.go @@ -447,6 +447,7 @@ type sqlcQuerier interface { // We do not start counting from 0 at the start_time. We check the last status change before the start_time for each user. As such, // the result shows the total number of users in each status on any particular day. GetUserStatusCounts(ctx context.Context, arg GetUserStatusCountsParams) ([]GetUserStatusCountsRow, error) + GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) GetUserTerminalFont(ctx context.Context, userID uuid.UUID) (string, error) GetUserThemePreference(ctx context.Context, userID uuid.UUID) (string, error) GetUserWorkspaceBuildParameters(ctx context.Context, arg GetUserWorkspaceBuildParametersParams) ([]GetUserWorkspaceBuildParametersRow, error) @@ -714,6 +715,7 @@ type sqlcQuerier interface { UpdateUserRoles(ctx context.Context, arg UpdateUserRolesParams) (User, error) UpdateUserSecret(ctx context.Context, arg UpdateUserSecretParams) (UserSecret, error) UpdateUserStatus(ctx context.Context, arg UpdateUserStatusParams) (User, error) + UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg UpdateUserTaskNotificationAlertDismissedParams) (bool, error) UpdateUserTerminalFont(ctx context.Context, arg UpdateUserTerminalFontParams) (UserConfig, error) UpdateUserThemePreference(ctx context.Context, arg UpdateUserThemePreferenceParams) (UserConfig, error) UpdateVolumeResourceMonitor(ctx context.Context, arg UpdateVolumeResourceMonitorParams) error diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index d99155ba99941..f7aa26d166eb6 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -16324,6 +16324,23 @@ func (q *sqlQuerier) GetUserCount(ctx context.Context, includeSystem bool) (int6 return count, err } +const getUserTaskNotificationAlertDismissed = `-- name: GetUserTaskNotificationAlertDismissed :one +SELECT + value::boolean as task_notification_alert_dismissed +FROM + user_configs +WHERE + user_id = $1 + AND key = 'preference_task_notification_alert_dismissed' +` + +func (q *sqlQuerier) GetUserTaskNotificationAlertDismissed(ctx context.Context, userID uuid.UUID) (bool, error) { + row := q.db.QueryRowContext(ctx, getUserTaskNotificationAlertDismissed, userID) + var task_notification_alert_dismissed bool + err := row.Scan(&task_notification_alert_dismissed) + return task_notification_alert_dismissed, err +} + const getUserTerminalFont = `-- name: GetUserTerminalFont :one SELECT value as terminal_font @@ -17076,6 +17093,33 @@ func (q *sqlQuerier) UpdateUserStatus(ctx context.Context, arg UpdateUserStatusP return i, err } +const updateUserTaskNotificationAlertDismissed = `-- name: UpdateUserTaskNotificationAlertDismissed :one +INSERT INTO + user_configs (user_id, key, value) +VALUES + ($1, 'preference_task_notification_alert_dismissed', ($2::boolean)::text) +ON CONFLICT + ON CONSTRAINT user_configs_pkey +DO UPDATE +SET + value = $2 +WHERE user_configs.user_id = $1 + AND user_configs.key = 'preference_task_notification_alert_dismissed' +RETURNING value::boolean AS task_notification_alert_dismissed +` + +type UpdateUserTaskNotificationAlertDismissedParams struct { + UserID uuid.UUID `db:"user_id" json:"user_id"` + TaskNotificationAlertDismissed bool `db:"task_notification_alert_dismissed" json:"task_notification_alert_dismissed"` +} + +func (q *sqlQuerier) UpdateUserTaskNotificationAlertDismissed(ctx context.Context, arg UpdateUserTaskNotificationAlertDismissedParams) (bool, error) { + row := q.db.QueryRowContext(ctx, updateUserTaskNotificationAlertDismissed, arg.UserID, arg.TaskNotificationAlertDismissed) + var task_notification_alert_dismissed bool + err := row.Scan(&task_notification_alert_dismissed) + return task_notification_alert_dismissed, err +} + const updateUserTerminalFont = `-- name: UpdateUserTerminalFont :one INSERT INTO user_configs (user_id, key, value) diff --git a/coderd/database/queries/users.sql b/coderd/database/queries/users.sql index 0b6e52d6bc918..889e99a3300d3 100644 --- a/coderd/database/queries/users.sql +++ b/coderd/database/queries/users.sql @@ -168,6 +168,29 @@ WHERE user_configs.user_id = @user_id AND user_configs.key = 'terminal_font' RETURNING *; +-- name: GetUserTaskNotificationAlertDismissed :one +SELECT + value::boolean as task_notification_alert_dismissed +FROM + user_configs +WHERE + user_id = @user_id + AND key = 'preference_task_notification_alert_dismissed'; + +-- name: UpdateUserTaskNotificationAlertDismissed :one +INSERT INTO + user_configs (user_id, key, value) +VALUES + (@user_id, 'preference_task_notification_alert_dismissed', (@task_notification_alert_dismissed::boolean)::text) +ON CONFLICT + ON CONSTRAINT user_configs_pkey +DO UPDATE +SET + value = @task_notification_alert_dismissed +WHERE user_configs.user_id = @user_id + AND user_configs.key = 'preference_task_notification_alert_dismissed' +RETURNING value::boolean AS task_notification_alert_dismissed; + -- name: UpdateUserRoles :one UPDATE users diff --git a/coderd/users.go b/coderd/users.go index 3ac05ff768911..94d4dece246c5 100644 --- a/coderd/users.go +++ b/coderd/users.go @@ -1077,6 +1077,74 @@ func (api *API) putUserAppearanceSettings(rw http.ResponseWriter, r *http.Reques }) } +// @Summary Get user preference settings +// @ID get-user-preference-settings +// @Security CoderSessionToken +// @Produce json +// @Tags Users +// @Param user path string true "User ID, name, or me" +// @Success 200 {object} codersdk.UserPreferenceSettings +// @Router /users/{user}/preferences [get] +func (api *API) userPreferenceSettings(rw http.ResponseWriter, r *http.Request) { + var ( + ctx = r.Context() + user = httpmw.UserParam(r) + ) + + taskAlertDismissed, err := api.Database.GetUserTaskNotificationAlertDismissed(ctx, user.ID) + if err != nil { + if !errors.Is(err, sql.ErrNoRows) { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "Error reading user preference settings.", + Detail: err.Error(), + }) + return + } + } + + httpapi.Write(ctx, rw, http.StatusOK, codersdk.UserPreferenceSettings{ + TaskNotificationAlertDismissed: taskAlertDismissed, + }) +} + +// @Summary Update user preference settings +// @ID update-user-preference-settings +// @Security CoderSessionToken +// @Accept json +// @Produce json +// @Tags Users +// @Param user path string true "User ID, name, or me" +// @Param request body codersdk.UpdateUserPreferenceSettingsRequest true "New preference settings" +// @Success 200 {object} codersdk.UserPreferenceSettings +// @Router /users/{user}/preferences [put] +func (api *API) putUserPreferenceSettings(rw http.ResponseWriter, r *http.Request) { + var ( + ctx = r.Context() + user = httpmw.UserParam(r) + ) + + var params codersdk.UpdateUserPreferenceSettingsRequest + if !httpapi.Read(ctx, rw, r, ¶ms) { + return + } + + updatedTaskAlertDismissed, err := api.Database.UpdateUserTaskNotificationAlertDismissed(ctx, database.UpdateUserTaskNotificationAlertDismissedParams{ + UserID: user.ID, + TaskNotificationAlertDismissed: params.TaskNotificationAlertDismissed, + }) + if err != nil { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "Internal error updating user task notification alert dismissed.", + Detail: err.Error(), + }) + return + } + + httpapi.Write(ctx, rw, http.StatusOK, codersdk.UserPreferenceSettings{ + TaskNotificationAlertDismissed: updatedTaskAlertDismissed, + }) +} + func isValidFontName(font codersdk.TerminalFontName) bool { return slices.Contains(codersdk.TerminalFontNames, font) } diff --git a/coderd/users_test.go b/coderd/users_test.go index b8d74272edd8b..4691165930a22 100644 --- a/coderd/users_test.go +++ b/coderd/users_test.go @@ -2192,16 +2192,16 @@ func TestUserTerminalFont(t *testing.T) { firstUser := coderdtest.CreateFirstUser(t, adminClient) client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) - ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) defer cancel() // given - initial, err := client.GetUserAppearanceSettings(ctx, "me") + initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me) require.NoError(t, err) require.Equal(t, codersdk.TerminalFontName(""), initial.TerminalFont) // when - updated, err := client.UpdateUserAppearanceSettings(ctx, "me", codersdk.UpdateUserAppearanceSettingsRequest{ + updated, err := client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{ ThemePreference: "light", TerminalFont: "fira-code", }) @@ -2218,16 +2218,16 @@ func TestUserTerminalFont(t *testing.T) { firstUser := coderdtest.CreateFirstUser(t, adminClient) client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) - ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) defer cancel() // given - initial, err := client.GetUserAppearanceSettings(ctx, "me") + initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me) require.NoError(t, err) require.Equal(t, codersdk.TerminalFontName(""), initial.TerminalFont) // when - _, err = client.UpdateUserAppearanceSettings(ctx, "me", codersdk.UpdateUserAppearanceSettingsRequest{ + _, err = client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{ ThemePreference: "light", TerminalFont: "foobar", }) @@ -2243,16 +2243,16 @@ func TestUserTerminalFont(t *testing.T) { firstUser := coderdtest.CreateFirstUser(t, adminClient) client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) - ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) defer cancel() // given - initial, err := client.GetUserAppearanceSettings(ctx, "me") + initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me) require.NoError(t, err) require.Equal(t, codersdk.TerminalFontName(""), initial.TerminalFont) // when - _, err = client.UpdateUserAppearanceSettings(ctx, "me", codersdk.UpdateUserAppearanceSettingsRequest{ + _, err = client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{ ThemePreference: "light", TerminalFont: "", }) @@ -2262,6 +2262,75 @@ func TestUserTerminalFont(t *testing.T) { }) } +func TestUserTaskNotificationAlertDismissed(t *testing.T) { + t.Parallel() + + t.Run("defaults to false", func(t *testing.T) { + t.Parallel() + + adminClient := coderdtest.New(t, nil) + firstUser := coderdtest.CreateFirstUser(t, adminClient) + client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) + + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) + defer cancel() + + // When: getting user preference settings for a user + settings, err := client.GetUserPreferenceSettings(ctx, codersdk.Me) + require.NoError(t, err) + + // Then: the task notification alert dismissed should default to false + require.False(t, settings.TaskNotificationAlertDismissed) + }) + + t.Run("update to true", func(t *testing.T) { + t.Parallel() + + adminClient := coderdtest.New(t, nil) + firstUser := coderdtest.CreateFirstUser(t, adminClient) + client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) + + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) + defer cancel() + + // When: user dismisses the task notification alert + updated, err := client.UpdateUserPreferenceSettings(ctx, codersdk.Me, codersdk.UpdateUserPreferenceSettingsRequest{ + TaskNotificationAlertDismissed: true, + }) + require.NoError(t, err) + + // Then: the setting is updated to true + require.True(t, updated.TaskNotificationAlertDismissed) + }) + + t.Run("update to false", func(t *testing.T) { + t.Parallel() + + adminClient := coderdtest.New(t, nil) + firstUser := coderdtest.CreateFirstUser(t, adminClient) + client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) + + ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) + defer cancel() + + // Given: user has dismissed the task notification alert + _, err := client.UpdateUserPreferenceSettings(ctx, codersdk.Me, codersdk.UpdateUserPreferenceSettingsRequest{ + TaskNotificationAlertDismissed: true, + }) + require.NoError(t, err) + + // When: the task notification alert dismissal is cleared + // (e.g., when user enables a task notification in the UI settings) + updated, err := client.UpdateUserPreferenceSettings(ctx, codersdk.Me, codersdk.UpdateUserPreferenceSettingsRequest{ + TaskNotificationAlertDismissed: false, + }) + require.NoError(t, err) + + // Then: the setting is updated to false + require.False(t, updated.TaskNotificationAlertDismissed) + }) +} + func TestWorkspacesByUser(t *testing.T) { t.Parallel() t.Run("Empty", func(t *testing.T) { diff --git a/codersdk/users.go b/codersdk/users.go index 44464f9476ddd..1bf09370d9a2f 100644 --- a/codersdk/users.go +++ b/codersdk/users.go @@ -217,6 +217,14 @@ type UpdateUserAppearanceSettingsRequest struct { TerminalFont TerminalFontName `json:"terminal_font" validate:"required"` } +type UserPreferenceSettings struct { + TaskNotificationAlertDismissed bool `json:"task_notification_alert_dismissed"` +} + +type UpdateUserPreferenceSettingsRequest struct { + TaskNotificationAlertDismissed bool `json:"task_notification_alert_dismissed"` +} + type UpdateUserPasswordRequest struct { OldPassword string `json:"old_password" validate:""` Password string `json:"password" validate:"required"` @@ -514,6 +522,34 @@ func (c *Client) UpdateUserAppearanceSettings(ctx context.Context, user string, return resp, json.NewDecoder(res.Body).Decode(&resp) } +// GetUserPreferenceSettings fetches the preference settings for a user. +func (c *Client) GetUserPreferenceSettings(ctx context.Context, user string) (UserPreferenceSettings, error) { + res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/users/%s/preferences", user), nil) + if err != nil { + return UserPreferenceSettings{}, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return UserPreferenceSettings{}, ReadBodyAsError(res) + } + var resp UserPreferenceSettings + return resp, json.NewDecoder(res.Body).Decode(&resp) +} + +// UpdateUserPreferenceSettings updates the preference settings for a user. +func (c *Client) UpdateUserPreferenceSettings(ctx context.Context, user string, req UpdateUserPreferenceSettingsRequest) (UserPreferenceSettings, error) { + res, err := c.Request(ctx, http.MethodPut, fmt.Sprintf("/api/v2/users/%s/preferences", user), req) + if err != nil { + return UserPreferenceSettings{}, err + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return UserPreferenceSettings{}, ReadBodyAsError(res) + } + var resp UserPreferenceSettings + return resp, json.NewDecoder(res.Body).Decode(&resp) +} + // UpdateUserPassword updates a user password. // It calls PUT /users/{user}/password func (c *Client) UpdateUserPassword(ctx context.Context, user string, req UpdateUserPasswordRequest) error { diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md index f3347ab3231db..7f88558c75503 100644 --- a/docs/reference/api/schemas.md +++ b/docs/reference/api/schemas.md @@ -9358,6 +9358,20 @@ Restarts will only happen on weekdays in this list on weeks which line up with W | `old_password` | string | false | | | | `password` | string | true | | | +## codersdk.UpdateUserPreferenceSettingsRequest + +```json +{ + "task_notification_alert_dismissed": true +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +|-------------------------------------|---------|----------|--------------|-------------| +| `task_notification_alert_dismissed` | boolean | false | | | + ## codersdk.UpdateUserProfileRequest ```json @@ -9846,6 +9860,20 @@ If the schedule is empty, the user will be updated to use the default schedule.| | `name` | string | false | | | | `value` | string | false | | | +## codersdk.UserPreferenceSettings + +```json +{ + "task_notification_alert_dismissed": true +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +|-------------------------------------|---------|----------|--------------|-------------| +| `task_notification_alert_dismissed` | boolean | false | | | + ## codersdk.UserQuietHoursScheduleConfig ```json diff --git a/docs/reference/api/users.md b/docs/reference/api/users.md index 857d619398ff9..c69c57af859aa 100644 --- a/docs/reference/api/users.md +++ b/docs/reference/api/users.md @@ -1241,6 +1241,90 @@ curl -X PUT http://coder-server:8080/api/v2/users/{user}/password \ To perform this operation, you must be authenticated. [Learn more](authentication.md). +## Get user preference settings + +### Code samples + +```shell +# Example request using curl +curl -X GET http://coder-server:8080/api/v2/users/{user}/preferences \ + -H 'Accept: application/json' \ + -H 'Coder-Session-Token: API_KEY' +``` + +`GET /users/{user}/preferences` + +### Parameters + +| Name | In | Type | Required | Description | +|--------|------|--------|----------|----------------------| +| `user` | path | string | true | User ID, name, or me | + +### Example responses + +> 200 Response + +```json +{ + "task_notification_alert_dismissed": true +} +``` + +### Responses + +| Status | Meaning | Description | Schema | +|--------|---------------------------------------------------------|-------------|------------------------------------------------------------------------------| +| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | [codersdk.UserPreferenceSettings](schemas.md#codersdkuserpreferencesettings) | + +To perform this operation, you must be authenticated. [Learn more](authentication.md). + +## Update user preference settings + +### Code samples + +```shell +# Example request using curl +curl -X PUT http://coder-server:8080/api/v2/users/{user}/preferences \ + -H 'Content-Type: application/json' \ + -H 'Accept: application/json' \ + -H 'Coder-Session-Token: API_KEY' +``` + +`PUT /users/{user}/preferences` + +> Body parameter + +```json +{ + "task_notification_alert_dismissed": true +} +``` + +### Parameters + +| Name | In | Type | Required | Description | +|--------|------|--------------------------------------------------------------------------------------------------------|----------|-------------------------| +| `user` | path | string | true | User ID, name, or me | +| `body` | body | [codersdk.UpdateUserPreferenceSettingsRequest](schemas.md#codersdkupdateuserpreferencesettingsrequest) | true | New preference settings | + +### Example responses + +> 200 Response + +```json +{ + "task_notification_alert_dismissed": true +} +``` + +### Responses + +| Status | Meaning | Description | Schema | +|--------|---------------------------------------------------------|-------------|------------------------------------------------------------------------------| +| 200 | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1) | OK | [codersdk.UserPreferenceSettings](schemas.md#codersdkuserpreferencesettings) | + +To perform this operation, you must be authenticated. [Learn more](authentication.md). + ## Update user profile ### Code samples diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 27c58cd520e63..eaf4076472a2e 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -1474,6 +1474,19 @@ class ApiMethods { return response.data; }; + getUserPreferenceSettings = + async (): Promise => { + const response = await this.axios.get("/api/v2/users/me/preferences"); + return response.data; + }; + + updateUserPreferenceSettings = async ( + req: TypesGen.UpdateUserPreferenceSettingsRequest, + ): Promise => { + const response = await this.axios.put("/api/v2/users/me/preferences", req); + return response.data; + }; + getUserQuietHoursSchedule = async ( userId: TypesGen.User["id"], ): Promise => { diff --git a/site/src/api/queries/users.ts b/site/src/api/queries/users.ts index 31a0302c94653..e6ec7e33644e6 100644 --- a/site/src/api/queries/users.ts +++ b/site/src/api/queries/users.ts @@ -6,9 +6,11 @@ import type { RequestOneTimePasscodeRequest, UpdateUserAppearanceSettingsRequest, UpdateUserPasswordRequest, + UpdateUserPreferenceSettingsRequest, UpdateUserProfileRequest, User, UserAppearanceSettings, + UserPreferenceSettings, UsersRequest, } from "api/typesGenerated"; import { @@ -277,6 +279,33 @@ export const updateAppearanceSettings = ( }; }; +const myPreferencesKey = ["me", "preferences"]; + +export const preferenceSettings = + (): UseQueryOptions => { + return { + queryKey: myPreferencesKey, + queryFn: () => API.getUserPreferenceSettings(), + }; + }; + +export const updatePreferenceSettings = ( + queryClient: QueryClient, +): UseMutationOptions< + UserPreferenceSettings, + unknown, + UpdateUserPreferenceSettingsRequest, + unknown +> => { + return { + mutationFn: (req) => API.updateUserPreferenceSettings(req), + onSuccess: async () => + await queryClient.invalidateQueries({ + queryKey: myPreferencesKey, + }), + }; +}; + export const requestOneTimePassword = () => { return { mutationFn: (req: RequestOneTimePasscodeRequest) => diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 5597abae9eacc..a2b439222eedf 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -5477,6 +5477,11 @@ export interface UpdateUserPasswordRequest { readonly password: string; } +// From codersdk/users.go +export interface UpdateUserPreferenceSettingsRequest { + readonly task_notification_alert_dismissed: boolean; +} + // From codersdk/users.go export interface UpdateUserProfileRequest { readonly username: string; @@ -5705,6 +5710,11 @@ export interface UserParameter { readonly value: string; } +// From codersdk/users.go +export interface UserPreferenceSettings { + readonly task_notification_alert_dismissed: boolean; +} + // From codersdk/deployment.go export interface UserQuietHoursScheduleConfig { readonly default_schedule: string; diff --git a/site/src/modules/notifications/utils.tsx b/site/src/modules/notifications/utils.tsx index 273a68e013e65..5e435d5a75ec3 100644 --- a/site/src/modules/notifications/utils.tsx +++ b/site/src/modules/notifications/utils.tsx @@ -1,3 +1,7 @@ +import type { + NotificationPreference, + NotificationTemplate, +} from "api/typesGenerated"; import { MailIcon, WebhookIcon } from "lucide-react"; // TODO: This should be provided by the auto generated types from codersdk @@ -26,3 +30,29 @@ export const castNotificationMethod = (value: string) => { )}`, ); }; + +export function isTaskNotification(tmpl: NotificationTemplate): boolean { + return tmpl.group === "Task Events"; +} + +// Determines if a notification is disabled based on user preferences and system defaults +// A notification is considered disabled if: +// 1. It's NOT enabled by default AND the user hasn't set any preference (undefined), OR +// 2. The user has explicitly disabled it in their preferences +// Returns true if disabled, false if enabled +export function notificationIsDisabled( + disabledPreferences: Record, + tmpl: NotificationTemplate, +): boolean { + return Boolean( + (!tmpl.enabled_by_default && disabledPreferences[tmpl.id] === undefined) || + disabledPreferences[tmpl.id], + ); +} + +// Transforms an array of NotificationPreference objects into a map +// where the key is the template ID and the value is whether it's disabled +// Example: [{ id: "abc", disabled: true }, { id: "def", disabled: false }] +export function selectDisabledPreferences(data: NotificationPreference[]) { + return Object.fromEntries(data.map((pref) => [pref.id, pref.disabled])); +} diff --git a/site/src/pages/TasksPage/TasksPage.stories.tsx b/site/src/pages/TasksPage/TasksPage.stories.tsx index 20fe21ee147cb..8a0026fcca9b5 100644 --- a/site/src/pages/TasksPage/TasksPage.stories.tsx +++ b/site/src/pages/TasksPage/TasksPage.stories.tsx @@ -1,6 +1,7 @@ import { MockDisplayNameTasks, MockInitializingTasks, + MockSystemNotificationTemplates, MockTasks, MockTemplate, MockUserOwner, @@ -255,3 +256,138 @@ export const InitializingTasks: Story = { ], }, }; + +export const AllTaskNotificationsDisabledAlertVisible: Story = { + parameters: { + queries: [ + { + key: ["tasks", { owner: MockUserOwner.username }], + data: MockTasks, + }, + { + key: getTemplatesQueryKey({ q: "has-ai-task:true" }), + data: [MockTemplate], + }, + { + // User notification preferences: empty because user hasn't changed defaults + // Task notifications are disabled by default (enabled_by_default: false) + key: ["users", MockUserOwner.id, "notifications", "preferences"], + data: [], + }, + { + // System notification templates: includes task notifications with enabled_by_default: false + key: ["notifications", "templates", "system"], + data: MockSystemNotificationTemplates, + }, + { + // User preferences: alert NOT dismissed + key: ["me", "preferences"], + data: { task_notification_alert_dismissed: false }, + }, + ], + }, +}; + +export const AllTaskNotificationsDisabledAlertDismissed: Story = { + parameters: { + queries: [ + { + key: ["tasks", { owner: MockUserOwner.username }], + data: MockTasks, + }, + { + key: getTemplatesQueryKey({ q: "has-ai-task:true" }), + data: [MockTemplate], + }, + { + // User notification preferences: empty because user hasn't changed defaults + // Task notifications are disabled by default (enabled_by_default: false) + key: ["users", MockUserOwner.id, "notifications", "preferences"], + data: [], + }, + { + // System notification templates: includes task notifications with enabled_by_default: false + key: ["notifications", "templates", "system"], + data: MockSystemNotificationTemplates, + }, + { + // User preferences: alert IS dismissed + key: ["me", "preferences"], + data: { task_notification_alert_dismissed: true }, + }, + ], + }, +}; + +export const OneTaskNotificationEnabledAlertHidden: Story = { + parameters: { + queries: [ + { + key: ["tasks", { owner: MockUserOwner.username }], + data: MockTasks, + }, + { + key: getTemplatesQueryKey({ q: "has-ai-task:true" }), + data: [MockTemplate], + }, + { + // User has explicitly enabled one task notification (Task Working) + // Since at least one task notification is enabled, the warning alert should not appear + key: ["users", MockUserOwner.id, "notifications", "preferences"], + data: [ + { + id: "bd4b7168-d05e-4e19-ad0f-3593b77aa90f", // Task Working + disabled: false, + updated_at: new Date().toISOString(), + }, + ], + }, + { + // System notification templates: includes task notifications with enabled_by_default: false + key: ["notifications", "templates", "system"], + data: MockSystemNotificationTemplates, + }, + { + // User preferences: doesn't matter since alert shouldn't show anyway + key: ["me", "preferences"], + data: { task_notification_alert_dismissed: false }, + }, + ], + }, +}; + +export const AllTaskNotificationsExplicitlyDisabledAlertVisible: Story = { + parameters: { + queries: [ + { + key: ["tasks", { owner: MockUserOwner.username }], + data: MockTasks, + }, + { + key: getTemplatesQueryKey({ q: "has-ai-task:true" }), + data: [MockTemplate], + }, + { + // User has explicitly disabled a task notification + key: ["users", MockUserOwner.id, "notifications", "preferences"], + data: [ + { + id: "d4a6271c-cced-4ed0-84ad-afd02a9c7799", // Task Idle + disabled: true, + updated_at: "2024-08-06T11:58:37.755053Z", + }, + ], + }, + { + // System notification templates: includes task notifications with enabled_by_default: false + key: ["notifications", "templates", "system"], + data: MockSystemNotificationTemplates, + }, + { + // User preferences: alert NOT dismissed + key: ["me", "preferences"], + data: { task_notification_alert_dismissed: false }, + }, + ], + }, +}; diff --git a/site/src/pages/TasksPage/TasksPage.tsx b/site/src/pages/TasksPage/TasksPage.tsx index 7b37c0371e950..e5009ae753be3 100644 --- a/site/src/pages/TasksPage/TasksPage.tsx +++ b/site/src/pages/TasksPage/TasksPage.tsx @@ -1,8 +1,18 @@ import { API } from "api/api"; +import { + systemNotificationTemplates, + userNotificationPreferences, +} from "api/queries/notifications"; import { templates } from "api/queries/templates"; +import { + preferenceSettings, + updatePreferenceSettings, +} from "api/queries/users"; import type { TasksFilter } from "api/typesGenerated"; +import { Alert } from "components/Alert/Alert"; import { Badge } from "components/Badge/Badge"; import { Button, type ButtonProps } from "components/Button/Button"; +import { Link } from "components/Link/Link"; import { Margins } from "components/Margins/Margins"; import { PageHeader, @@ -11,9 +21,14 @@ import { } from "components/PageHeader/PageHeader"; import { useAuthenticated } from "hooks"; import { useSearchParamsKey } from "hooks/useSearchParamsKey"; +import { + isTaskNotification, + notificationIsDisabled, + selectDisabledPreferences, +} from "modules/notifications/utils"; import { TaskPrompt } from "modules/tasks/TaskPrompt/TaskPrompt"; -import type { FC } from "react"; -import { useQuery } from "react-query"; +import { type FC, useState } from "react"; +import { useMutation, useQueries, useQuery, useQueryClient } from "react-query"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; import { TasksTable } from "./TasksTable"; @@ -49,10 +64,56 @@ const TasksPage: FC = () => { const displayedTasks = tab.value === "waiting-for-input" ? idleTasks : tasksQuery.data; + // Fetch notification preferences and templates + const [disabledPreferencesQuery, systemTemplatesQuery] = useQueries({ + queries: [ + { + ...userNotificationPreferences(user.id), + select: selectDisabledPreferences, + }, + systemNotificationTemplates(), + ], + }); + + const disabledPreferences = disabledPreferencesQuery.data ?? {}; + + // Check if ALL task notifications are disabled + // Returns true only when all task notification templates are disabled. + // If even one is enabled, returns false and the warning won't show. + const allTaskNotificationsDisabled = systemTemplatesQuery.data + ?.filter(isTaskNotification) + .every((template) => notificationIsDisabled(disabledPreferences, template)); + + const queryClient = useQueryClient(); + const preferencesQuery = useQuery(preferenceSettings()); + const updatePreferencesMutation = useMutation( + updatePreferenceSettings(queryClient), + ); + + const taskNotificationAlertDismissed = + preferencesQuery.data?.task_notification_alert_dismissed ?? false; + return ( <> {pageTitle("AI Tasks")} + {allTaskNotificationsDisabled && !taskNotificationAlertDismissed && ( +
+ { + updatePreferencesMutation.mutate({ + task_notification_alert_dismissed: true, + }); + }} + > + Your notifications for tasks status changes are disabled. Go to{" "} + Account Settings to + change it. + +
+ )} Tasks Automate tasks with AI diff --git a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx index 166531eb69ecc..5b0c508726572 100644 --- a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx +++ b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.stories.tsx @@ -18,7 +18,7 @@ import { systemNotificationTemplatesKey, userNotificationPreferencesKey, } from "api/queries/notifications"; -import { expect, spyOn, userEvent, within } from "storybook/test"; +import { expect, spyOn, userEvent, waitFor, within } from "storybook/test"; import { reactRouterParameters } from "storybook-addon-remix-react-router"; import NotificationsPage from "./NotificationsPage"; @@ -185,3 +185,69 @@ export const DisableInvalidTemplate: Story = { await within(document.body).findByText("Error disabling notification"); }, }; + +export const EnablingTaskNotificationClearsAlertDismissal: Story = { + parameters: { + queries: [ + { + // User notification preferences: empty because user hasn't changed defaults + // Task notifications are disabled by default (enabled_by_default: false) + key: ["users", MockUserOwner.id, "notifications", "preferences"], + data: [], + }, + { + // System notification templates: includes task notifications with enabled_by_default: false + key: ["notifications", "templates", "system"], + data: MockSystemNotificationTemplates, + }, + { + key: customNotificationTemplatesKey, + data: MockCustomNotificationTemplates, + }, + { + key: notificationDispatchMethodsKey, + data: MockNotificationMethodsResponse, + }, + { + // User preferences: alert was previously dismissed + key: ["me", "preferences"], + data: { task_notification_alert_dismissed: true }, + }, + ], + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + // Mock the API call to update notification preferences + spyOn(API, "putUserNotificationPreferences").mockResolvedValue([ + { + id: "d4a6271c-cced-4ed0-84ad-afd02a9c7799", // Task Idle + disabled: false, + updated_at: new Date().toISOString(), + }, + ]); + + // Mock the user preferences update to verify the alert dismissal is cleared + const updatePreferencesSpy = spyOn( + API, + "updateUserPreferenceSettings", + ).mockResolvedValue({ + task_notification_alert_dismissed: false, + }); + + await step("Enable Task Idle notification", async () => { + // Find the Task Idle checkbox by its label text + const taskIdleToggle = canvas.getByLabelText("Task Idle"); + + // Click to enable it + await userEvent.click(taskIdleToggle); + + // Verify the preferences API was called to clear the alert dismissal + await waitFor(() => { + expect(updatePreferencesSpy).toHaveBeenCalledWith({ + task_notification_alert_dismissed: false, + }); + }); + }); + }, +}; diff --git a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx index 730a3e8b04aa2..7af3401d8f56a 100644 --- a/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx +++ b/site/src/pages/UserSettingsPage/NotificationsPage/NotificationsPage.tsx @@ -15,10 +15,11 @@ import { updateUserNotificationPreferences, userNotificationPreferences, } from "api/queries/notifications"; -import type { - NotificationPreference, - NotificationTemplate, -} from "api/typesGenerated"; +import { + preferenceSettings, + updatePreferenceSettings, +} from "api/queries/users"; +import type { NotificationTemplate } from "api/typesGenerated"; import { displayError, displaySuccess } from "components/GlobalSnackbar/utils"; import { Loader } from "components/Loader/Loader"; import { Stack } from "components/Stack/Stack"; @@ -30,12 +31,15 @@ import { import { useAuthenticated } from "hooks"; import { castNotificationMethod, + isTaskNotification, methodIcons, methodLabels, + notificationIsDisabled, + selectDisabledPreferences, } from "modules/notifications/utils"; import type { Permissions } from "modules/permissions"; import { type FC, Fragment, useEffect } from "react"; -import { useMutation, useQueries, useQueryClient } from "react-query"; +import { useMutation, useQueries, useQuery, useQueryClient } from "react-query"; import { useSearchParams } from "react-router"; import { pageTitle } from "utils/page"; import { Section } from "../Section"; @@ -103,6 +107,11 @@ const NotificationsPage: FC = () => { ...customTemplatesByGroup.data, }; + const preferencesQuery = useQuery(preferenceSettings()); + const updatePreferencesMutation = useMutation( + updatePreferenceSettings(queryClient), + ); + return ( <> {pageTitle("Notifications Settings")} @@ -185,6 +194,20 @@ const NotificationsPage: FC = () => { [tmpl.id]: !checked, }, }); + + // Clear the Tasks page warning dismissal when enabling a task notification + // This ensures that if the user disables task notifications again later, + // they will see the warning alert again. + if ( + isTaskNotification(tmpl) && + checked && + preferencesQuery.data + ) { + updatePreferencesMutation.mutate({ + task_notification_alert_dismissed: false, + }); + } + displaySuccess( "Notification preferences updated", ); @@ -250,26 +273,6 @@ function canSeeNotificationGroup( } } -function notificationIsDisabled( - disabledPreferences: Record, - tmpl: NotificationTemplate, -): boolean { - return ( - (!tmpl.enabled_by_default && disabledPreferences[tmpl.id] === undefined) || - !!disabledPreferences[tmpl.id] - ); -} - -function selectDisabledPreferences(data: NotificationPreference[]) { - return data.reduce( - (acc, pref) => { - acc[pref.id] = pref.disabled; - return acc; - }, - {} as Record, - ); -} - const styles = { listHeader: (theme) => ({ background: theme.palette.background.paper, diff --git a/site/src/testHelpers/entities.ts b/site/src/testHelpers/entities.ts index 4c1087c7b328d..378bf6bca3a22 100644 --- a/site/src/testHelpers/entities.ts +++ b/site/src/testHelpers/entities.ts @@ -4691,6 +4691,31 @@ export const MockSystemNotificationTemplates: TypesGen.NotificationTemplate[] = kind: "system", enabled_by_default: true, }, + { + id: "8c5a4d12-9f7e-4b3a-a1c8-6e4f2d9b5a7c", + name: "Task Completed", + title_template: "Task '{{.Labels.workspace}}' completed", + body_template: "The task '{{.Labels.task}}' has completed successfully.", + actions: + '[{"url": "{{base_url}}/tasks/{{.UserUsername}}/{{.Labels.workspace}}", "label": "View task"}, {"url": "{{base_url}}/@{{.UserUsername}}/{{.Labels.workspace}}", "label": "View workspace"}]', + group: "Task Events", + method: "", + kind: "system", + enabled_by_default: false, + }, + { + id: "3b7e8f1a-4c2d-49a6-b5e9-7f3a1c8d6b4e", + name: "Task Failed", + title_template: "Task '{{.Labels.workspace}}' failed", + body_template: + "The task '{{.Labels.task}}' has failed. Check the logs for more details.", + actions: + '[{"url": "{{base_url}}/tasks/{{.UserUsername}}/{{.Labels.workspace}}", "label": "View task"}, {"url": "{{base_url}}/@{{.UserUsername}}/{{.Labels.workspace}}", "label": "View workspace"}]', + group: "Task Events", + method: "", + kind: "system", + enabled_by_default: false, + }, { id: "d4a6271c-cced-4ed0-84ad-afd02a9c7799", name: "Task Idle", @@ -4701,7 +4726,7 @@ export const MockSystemNotificationTemplates: TypesGen.NotificationTemplate[] = group: "Task Events", method: "", kind: "system", - enabled_by_default: true, + enabled_by_default: false, }, { id: "bd4b7168-d05e-4e19-ad0f-3593b77aa90f", @@ -4714,7 +4739,7 @@ export const MockSystemNotificationTemplates: TypesGen.NotificationTemplate[] = group: "Task Events", method: "", kind: "system", - enabled_by_default: true, + enabled_by_default: false, }, ]; From 8430dd648a0132d694605fd5629c5a7d3397d305 Mon Sep 17 00:00:00 2001 From: Zach <3724288+zedkipp@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:09:54 -0800 Subject: [PATCH 07/90] fix(cli): remove defaulting to keyring when --global-config set (cherry-pick) (#20953) (cherry picked from commit bbf7b137da26062fa2045346c6d2e56c0273eb42) --- cli/clitest/clitest.go | 8 +++--- cli/keyring_test.go | 2 ++ cli/root.go | 32 +++++++++++++++------ cli/testdata/coder_--help.golden | 7 +++-- docs/reference/cli/index.md | 2 +- enterprise/cli/testdata/coder_--help.golden | 7 +++-- 6 files changed, 38 insertions(+), 20 deletions(-) diff --git a/cli/clitest/clitest.go b/cli/clitest/clitest.go index 20db312101814..3e506a26b6d59 100644 --- a/cli/clitest/clitest.go +++ b/cli/clitest/clitest.go @@ -61,10 +61,10 @@ func NewWithCommand( t testing.TB, cmd *serpent.Command, args ...string, ) (*serpent.Invocation, config.Root) { configDir := config.Root(t.TempDir()) - // Keyring usage is disabled here because many existing tests expect the session token - // to be stored on disk and is not properly instrumented for parallel testing against - // the actual operating system keyring. - invArgs := append([]string{"--global-config", string(configDir), "--use-keyring=false"}, args...) + // Keyring usage is disabled here when --global-config is set because many existing + // tests expect the session token to be stored on disk and is not properly instrumented + // for parallel testing against the actual operating system keyring. + invArgs := append([]string{"--global-config", string(configDir)}, args...) return setupInvocation(t, cmd, invArgs...), configDir } diff --git a/cli/keyring_test.go b/cli/keyring_test.go index 27b7c12d53cb0..7cb190845a31b 100644 --- a/cli/keyring_test.go +++ b/cli/keyring_test.go @@ -54,6 +54,7 @@ func setupKeyringTestEnv(t *testing.T, clientURL string, args ...string) keyring serviceName := keyringTestServiceName(t) root.WithKeyringServiceName(serviceName) + root.UseKeyringWithGlobalConfig() inv, cfg := clitest.NewWithDefaultKeyringCommand(t, cmd, args...) @@ -169,6 +170,7 @@ func TestUseKeyring(t *testing.T) { logoutCmd, err := logoutRoot.Command(logoutRoot.AGPL()) require.NoError(t, err) logoutRoot.WithKeyringServiceName(env.serviceName) + logoutRoot.UseKeyringWithGlobalConfig() logoutInv, _ := clitest.NewWithDefaultKeyringCommand(t, logoutCmd, "logout", diff --git a/cli/root.go b/cli/root.go index 64615955be066..1aa45ae42d75f 100644 --- a/cli/root.go +++ b/cli/root.go @@ -484,9 +484,9 @@ func (r *RootCmd) Command(subcommands []*serpent.Command) (*serpent.Command, err Flag: varUseKeyring, Env: envUseKeyring, Description: "Store and retrieve session tokens using the operating system " + - "keyring. Enabled by default. If the keyring is not supported on the " + - "current platform, file-based storage is used automatically. Set to " + - "false to force file-based storage.", + "keyring. This flag is ignored and file-based storage is used when " + + "--global-config is set or keyring usage is not supported on the current " + + "platform. Set to false to force file-based storage on supported platforms.", Default: "true", Value: serpent.BoolOf(&r.useKeyring), Group: globalGroup, @@ -537,11 +537,12 @@ type RootCmd struct { disableDirect bool debugHTTP bool - disableNetworkTelemetry bool - noVersionCheck bool - noFeatureWarning bool - useKeyring bool - keyringServiceName string + disableNetworkTelemetry bool + noVersionCheck bool + noFeatureWarning bool + useKeyring bool + keyringServiceName string + useKeyringWithGlobalConfig bool } // InitClient creates and configures a new client with authentication, telemetry, @@ -722,8 +723,14 @@ func (r *RootCmd) createUnauthenticatedClient(ctx context.Context, serverURL *ur // flag. func (r *RootCmd) ensureTokenBackend() sessionstore.Backend { if r.tokenBackend == nil { + // Checking for the --global-config directory being set is a bit wonky but necessary + // to allow extensions that invoke the CLI with this flag (e.g. VS code) to continue + // working without modification. In the future we should modify these extensions to + // either access the credential in the keyring (like Coder Desktop) or some other + // approach that doesn't rely on the session token being stored on disk. + assumeExtensionInUse := r.globalConfig != config.DefaultDir() && !r.useKeyringWithGlobalConfig keyringSupported := runtime.GOOS == "windows" || runtime.GOOS == "darwin" - if r.useKeyring && keyringSupported { + if r.useKeyring && !assumeExtensionInUse && keyringSupported { serviceName := sessionstore.DefaultServiceName if r.keyringServiceName != "" { serviceName = r.keyringServiceName @@ -743,6 +750,13 @@ func (r *RootCmd) WithKeyringServiceName(serviceName string) { r.keyringServiceName = serviceName } +// UseKeyringWithGlobalConfig enables the use of the keyring storage backend +// when the --global-config directory is set. This is only intended as an override +// for tests, which require specifying the global config directory for test isolation. +func (r *RootCmd) UseKeyringWithGlobalConfig() { + r.useKeyringWithGlobalConfig = true +} + type AgentAuth struct { // Agent Client config agentToken string diff --git a/cli/testdata/coder_--help.golden b/cli/testdata/coder_--help.golden index 0057fdc15d226..ab13e2af71e0f 100644 --- a/cli/testdata/coder_--help.golden +++ b/cli/testdata/coder_--help.golden @@ -111,9 +111,10 @@ variables or flags. --use-keyring bool, $CODER_USE_KEYRING (default: true) Store and retrieve session tokens using the operating system keyring. - Enabled by default. If the keyring is not supported on the current - platform, file-based storage is used automatically. Set to false to - force file-based storage. + This flag is ignored and file-based storage is used when + --global-config is set or keyring usage is not supported on the + current platform. Set to false to force file-based storage on + supported platforms. -v, --verbose bool, $CODER_VERBOSE Enable verbose output. diff --git a/docs/reference/cli/index.md b/docs/reference/cli/index.md index e22e2deeeca82..b26ec94a7f80d 100644 --- a/docs/reference/cli/index.md +++ b/docs/reference/cli/index.md @@ -179,7 +179,7 @@ Disable network telemetry. Network telemetry is collected when connecting to wor | Environment | $CODER_USE_KEYRING | | Default | true | -Store and retrieve session tokens using the operating system keyring. Enabled by default. If the keyring is not supported on the current platform, file-based storage is used automatically. Set to false to force file-based storage. +Store and retrieve session tokens using the operating system keyring. This flag is ignored and file-based storage is used when --global-config is set or keyring usage is not supported on the current platform. Set to false to force file-based storage on supported platforms. ### --global-config diff --git a/enterprise/cli/testdata/coder_--help.golden b/enterprise/cli/testdata/coder_--help.golden index 41ed3209687d8..e199e8cc27d4d 100644 --- a/enterprise/cli/testdata/coder_--help.golden +++ b/enterprise/cli/testdata/coder_--help.golden @@ -70,9 +70,10 @@ variables or flags. --use-keyring bool, $CODER_USE_KEYRING (default: true) Store and retrieve session tokens using the operating system keyring. - Enabled by default. If the keyring is not supported on the current - platform, file-based storage is used automatically. Set to false to - force file-based storage. + This flag is ignored and file-based storage is used when + --global-config is set or keyring usage is not supported on the + current platform. Set to false to force file-based storage on + supported platforms. -v, --verbose bool, $CODER_VERBOSE Enable verbose output. From c94c470aaeae615dadcb55b749597fe175b9f755 Mon Sep 17 00:00:00 2001 From: Callum Styan Date: Mon, 1 Dec 2025 12:16:30 -0800 Subject: [PATCH 08/90] fix: pass context with authorization to agentapi (#21045) cherry pick 20959 into release branch Signed-off-by: Callum Styan --- coderd/agentapi/api.go | 4 ++-- coderd/agentapi/metadata_test.go | 18 +++++++++--------- coderd/workspaceagentsrpc.go | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/coderd/agentapi/api.go b/coderd/agentapi/api.go index 8c8b1a00ae064..252e6b5c08449 100644 --- a/coderd/agentapi/api.go +++ b/coderd/agentapi/api.go @@ -69,7 +69,7 @@ type Options struct { WorkspaceID uuid.UUID OrganizationID uuid.UUID - Ctx context.Context + AuthenticatedCtx context.Context Log slog.Logger Clock quartz.Clock Database database.Store @@ -220,7 +220,7 @@ func New(opts Options, workspace database.Workspace) *API { // Start background cache refresh loop to handle workspace changes // like prebuild claims where owner_id and other fields may be modified in the DB. - go api.startCacheRefreshLoop(opts.Ctx) + go api.startCacheRefreshLoop(opts.AuthenticatedCtx) return api } diff --git a/coderd/agentapi/metadata_test.go b/coderd/agentapi/metadata_test.go index 23a6c4df4ad4a..1ba02d037fef5 100644 --- a/coderd/agentapi/metadata_test.go +++ b/coderd/agentapi/metadata_test.go @@ -671,15 +671,15 @@ func TestBatchUpdateMetadata(t *testing.T) { // Create full API with cached workspace fields (initial state) api := agentapi.New(agentapi.Options{ - Ctx: ctxWithActor, - AgentID: agentID, - WorkspaceID: workspaceID, - OwnerID: ownerID, - OrganizationID: orgID, - Database: dbauthz.New(dbM, auth, testutil.Logger(t), accessControlStore), - Log: testutil.Logger(t), - Clock: mClock, - Pubsub: pub, + AuthenticatedCtx: ctxWithActor, + AgentID: agentID, + WorkspaceID: workspaceID, + OwnerID: ownerID, + OrganizationID: orgID, + Database: dbauthz.New(dbM, auth, testutil.Logger(t), accessControlStore), + Log: testutil.Logger(t), + Clock: mClock, + Pubsub: pub, }, initialWorkspace) // Cache is initialized with 9am schedule and "my-workspace" name // Wait for ticker to be set up and release it so it can fire diff --git a/coderd/workspaceagentsrpc.go b/coderd/workspaceagentsrpc.go index d5757786e474e..50a14768c1b7d 100644 --- a/coderd/workspaceagentsrpc.go +++ b/coderd/workspaceagentsrpc.go @@ -132,7 +132,7 @@ func (api *API) workspaceAgentRPC(rw http.ResponseWriter, r *http.Request) { WorkspaceID: workspace.ID, OrganizationID: workspace.OrganizationID, - Ctx: api.ctx, + AuthenticatedCtx: ctx, Log: logger, Clock: api.Clock, Database: api.Database, From ba71b321bceab3faa128d306e8de3612a673d6c1 Mon Sep 17 00:00:00 2001 From: "blinkagent[bot]" <237617714+blinkagent[bot]@users.noreply.github.com> Date: Tue, 2 Dec 2025 11:33:50 -0600 Subject: [PATCH 09/90] fix: remove a sensitive field from an agent log line (#20968) (#21063) This PR removes a log field that could expose sensitive information in agent logs for workspaces that pass such information to the agent via its manifest. (cherry picked from commit 1d726c81bbe2a4f3e7966c6a8ea2dd5a636add3e) Co-authored-by: Sas Swart --- agent/agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/agent.go b/agent/agent.go index 8c8ec48ddf4eb..0a5459ddc0e28 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -1127,7 +1127,7 @@ func (a *agent) handleManifest(manifestOK *checkpoint) func(ctx context.Context, if err != nil { return xerrors.Errorf("fetch metadata: %w", err) } - a.logger.Info(ctx, "fetched manifest", slog.F("manifest", mp)) + a.logger.Info(ctx, "fetched manifest") manifest, err := agentsdk.ManifestFromProto(mp) if err != nil { a.logger.Critical(ctx, "failed to convert manifest", slog.F("manifest", mp), slog.Error(err)) From 59cdd7e21f4d7da12567c0c29964d298fbf38f27 Mon Sep 17 00:00:00 2001 From: Jakub Domeracki Date: Tue, 9 Dec 2025 16:34:16 +0100 Subject: [PATCH 10/90] chore: update react to apply patch for CVE-2025-55182 (#21084) (#21168) Reference: https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components > Please note that coder deployments aren't vulnerable since [React Server Components](https://react.dev/reference/rsc/server-components) aren't in use --------- Co-authored-by: blinkagent[bot] <237617714+blinkagent[bot]@users.noreply.github.com> Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> --- site/package.json | 4 +- site/pnpm-lock.yaml | 1016 ++++++++++++------------ site/src/pages/TasksPage/TasksPage.tsx | 2 +- 3 files changed, 511 insertions(+), 511 deletions(-) diff --git a/site/package.json b/site/package.json index 574528e2bb327..f63f44e2be484 100644 --- a/site/package.json +++ b/site/package.json @@ -93,11 +93,11 @@ "lucide-react": "0.552.0", "monaco-editor": "0.55.1", "pretty-bytes": "6.1.1", - "react": "19.2.0", + "react": "19.2.1", "react-color": "2.19.3", "react-confetti": "6.4.0", "react-date-range": "1.4.0", - "react-dom": "19.2.0", + "react-dom": "19.2.1", "react-markdown": "9.1.0", "react-query": "npm:@tanstack/react-query@5.77.0", "react-resizable-panels": "3.0.6", diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml index 86001e2f4244e..f346b3b992884 100644 --- a/site/pnpm-lock.yaml +++ b/site/pnpm-lock.yaml @@ -24,7 +24,7 @@ importers: version: 1.2.1 '@emoji-mart/react': specifier: 1.1.1 - version: 1.1.1(emoji-mart@5.6.0)(react@19.2.0) + version: 1.1.1(emoji-mart@5.6.0)(react@19.2.1) '@emotion/cache': specifier: 11.14.0 version: 11.14.0 @@ -33,10 +33,10 @@ importers: version: 11.13.5 '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@19.2.2)(react@19.2.0) + version: 11.14.0(@types/react@19.2.2)(react@19.2.1) '@emotion/styled': specifier: 11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) '@fontsource-variable/inter': specifier: 5.2.8 version: 5.2.8 @@ -54,67 +54,67 @@ importers: version: 5.2.7 '@monaco-editor/react': specifier: 4.7.0 - version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/material': specifier: 5.18.0 - version: 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@mui/system': specifier: 5.18.0 - version: 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + version: 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) '@mui/utils': specifier: 5.17.1 - version: 5.17.1(@types/react@19.2.2)(react@19.2.0) + version: 5.17.1(@types/react@19.2.2)(react@19.2.1) '@mui/x-tree-view': specifier: 7.29.10 - version: 7.29.10(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.29.10(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-avatar': specifier: 1.1.10 - version: 1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-checkbox': specifier: 1.3.3 - version: 1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-collapsible': specifier: 1.1.12 - version: 1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-dialog': specifier: 1.1.15 - version: 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-dropdown-menu': specifier: 2.1.16 - version: 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-label': specifier: 2.1.7 - version: 2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-popover': specifier: 1.1.15 - version: 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-radio-group': specifier: 1.3.8 - version: 1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-scroll-area': specifier: 1.2.10 - version: 1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-select': specifier: 2.2.6 - version: 2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-separator': specifier: 1.1.7 - version: 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-slider': specifier: 1.3.6 - version: 1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-slot': specifier: 1.2.3 - version: 1.2.3(@types/react@19.2.2)(react@19.2.0) + version: 1.2.3(@types/react@19.2.2)(react@19.2.1) '@radix-ui/react-switch': specifier: 1.2.6 - version: 1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@radix-ui/react-tooltip': specifier: 1.2.8 - version: 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@tanstack/react-query-devtools': specifier: 5.77.0 - version: 5.77.0(@tanstack/react-query@5.77.0(react@19.2.0))(react@19.2.0) + version: 5.77.0(@tanstack/react-query@5.77.0(react@19.2.1))(react@19.2.1) '@xterm/addon-canvas': specifier: 0.7.0 version: 0.7.0(@xterm/xterm@5.5.0) @@ -150,7 +150,7 @@ importers: version: 2.1.1 cmdk: specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) color-convert: specifier: 2.0.1 version: 2.0.1 @@ -171,7 +171,7 @@ importers: version: 2.0.5 formik: specifier: 2.4.6 - version: 2.4.6(react@19.2.0) + version: 2.4.6(react@19.2.1) front-matter: specifier: 4.0.2 version: 4.0.2 @@ -186,7 +186,7 @@ importers: version: 4.17.21 lucide-react: specifier: 0.552.0 - version: 0.552.0(react@19.2.0) + version: 0.552.0(react@19.2.1) monaco-editor: specifier: 0.55.1 version: 0.55.1 @@ -194,47 +194,47 @@ importers: specifier: 6.1.1 version: 6.1.1 react: - specifier: 19.2.0 - version: 19.2.0 + specifier: 19.2.1 + version: 19.2.1 react-color: specifier: 2.19.3 - version: 2.19.3(react@19.2.0) + version: 2.19.3(react@19.2.1) react-confetti: specifier: 6.4.0 - version: 6.4.0(react@19.2.0) + version: 6.4.0(react@19.2.1) react-date-range: specifier: 1.4.0 - version: 1.4.0(date-fns@2.30.0)(react@19.2.0) + version: 1.4.0(date-fns@2.30.0)(react@19.2.1) react-dom: - specifier: 19.2.0 - version: 19.2.0(react@19.2.0) + specifier: 19.2.1 + version: 19.2.1(react@19.2.1) react-markdown: specifier: 9.1.0 - version: 9.1.0(@types/react@19.2.2)(react@19.2.0) + version: 9.1.0(@types/react@19.2.2)(react@19.2.1) react-query: specifier: npm:@tanstack/react-query@5.77.0 - version: '@tanstack/react-query@5.77.0(react@19.2.0)' + version: '@tanstack/react-query@5.77.0(react@19.2.1)' react-resizable-panels: specifier: 3.0.6 - version: 3.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 3.0.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-router: specifier: 7.9.5 - version: 7.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.9.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-syntax-highlighter: specifier: 15.6.1 - version: 15.6.1(react@19.2.0) + version: 15.6.1(react@19.2.1) react-textarea-autosize: specifier: 8.5.9 - version: 8.5.9(@types/react@19.2.2)(react@19.2.0) + version: 8.5.9(@types/react@19.2.2)(react@19.2.1) react-virtualized-auto-sizer: specifier: 1.0.26 - version: 1.0.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.0.26(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-window: specifier: 1.8.11 - version: 1.8.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.8.11(react-dom@19.2.1(react@19.2.1))(react@19.2.1) recharts: specifier: 2.15.4 - version: 2.15.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.15.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) remark-gfm: specifier: 4.0.1 version: 4.0.1 @@ -292,13 +292,13 @@ importers: version: 9.1.2(@types/react@19.2.2)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) '@storybook/addon-links': specifier: 9.1.2 - version: 9.1.2(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) + version: 9.1.2(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) '@storybook/addon-themes': specifier: 9.1.2 version: 9.1.2(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) '@storybook/react-vite': specifier: 9.1.2 - version: 9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.5)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) + version: 9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.52.5)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) '@swc/core': specifier: 1.3.38 version: 1.3.38 @@ -313,7 +313,7 @@ importers: version: 6.9.1 '@testing-library/react': specifier: 14.3.1 - version: 14.3.1(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 14.3.1(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@testing-library/user-event': specifier: 14.6.1 version: 14.6.1(@testing-library/dom@10.4.0) @@ -358,7 +358,7 @@ importers: version: 15.5.13 '@types/react-virtualized-auto-sizer': specifier: 1.0.8 - version: 1.0.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.0.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/react-window': specifier: 1.8.8 version: 1.8.8 @@ -439,7 +439,7 @@ importers: version: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) storybook-addon-remix-react-router: specifier: 5.0.0 - version: 5.0.0(react-dom@19.2.0(react@19.2.0))(react-router@7.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) + version: 5.0.0(react-dom@19.2.1(react@19.2.1))(react-router@7.9.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) tailwindcss: specifier: 3.4.18 version: 3.4.18(yaml@2.7.0) @@ -5200,10 +5200,10 @@ packages: resolution: {integrity: sha512-kmob/FOTwep7DUWf9KjuenKX0vyvChr3oTdvvPt09V60Iz75FJp+T/0ZeHMbAfJj2WaVWqAPP5Hmm3PYzSPPKg==, tarball: https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.0.tgz} engines: {node: ^20.9.0 || >=22} - react-dom@19.2.0: - resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==, tarball: https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz} + react-dom@19.2.1: + resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==, tarball: https://registry.npmjs.org/react-dom/-/react-dom-19.2.1.tgz} peerDependencies: - react: ^19.2.0 + react: ^19.2.1 react-fast-compare@2.0.4: resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==, tarball: https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz} @@ -5322,8 +5322,8 @@ packages: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react@19.2.0: - resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==, tarball: https://registry.npmjs.org/react/-/react-19.2.0.tgz} + react@19.2.1: + resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==, tarball: https://registry.npmjs.org/react/-/react-19.2.1.tgz} engines: {node: '>=0.10.0'} reactcss@1.2.3: @@ -6723,10 +6723,10 @@ snapshots: '@emoji-mart/data@1.2.1': {} - '@emoji-mart/react@1.1.1(emoji-mart@5.6.0)(react@19.2.0)': + '@emoji-mart/react@1.1.1(emoji-mart@5.6.0)(react@19.2.1)': dependencies: emoji-mart: 5.6.0 - react: 19.2.0 + react: 19.2.1 '@emotion/babel-plugin@11.13.5': dependencies: @@ -6770,17 +6770,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0)': + '@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.1) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 transitivePeerDependencies: @@ -6796,16 +6796,16 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.1) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.1) '@emotion/utils': 1.4.2 - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 transitivePeerDependencies: @@ -6813,9 +6813,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.0)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 '@emotion/utils@1.4.2': {} @@ -6935,11 +6935,11 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@floating-ui/react-dom@2.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) '@floating-ui/utils@0.2.10': {} @@ -6968,9 +6968,9 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': optional: true - '@icons/material@0.2.4(react@19.2.0)': + '@icons/material@0.2.4(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 '@inquirer/confirm@3.2.0': dependencies: @@ -7257,11 +7257,11 @@ snapshots: '@leeoniya/ufuzzy@1.0.10': {} - '@mdx-js/react@3.0.1(@types/react@19.2.2)(react@19.2.0)': + '@mdx-js/react@3.0.1(@types/react@19.2.2)(react@19.2.1)': dependencies: '@types/mdx': 2.0.9 '@types/react': 19.2.2 - react: 19.2.0 + react: 19.2.1 '@mjackson/form-data-parser@0.4.0': dependencies: @@ -7277,12 +7277,12 @@ snapshots: dependencies: state-local: 1.0.7 - '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@monaco-editor/loader': 1.5.0 monaco-editor: 0.55.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) '@mswjs/interceptors@0.35.9': dependencies: @@ -7295,104 +7295,104 @@ snapshots: '@mui/core-downloads-tracker@5.18.0': {} - '@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@mui/core-downloads-tracker': 5.18.0 - '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) '@mui/types': 7.2.24(@types/react@19.2.2) - '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.0) + '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.2.2) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-is: 19.1.1 - react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) '@types/react': 19.2.2 - '@mui/private-theming@5.17.1(@types/react@19.2.2)(react@19.2.0)': + '@mui/private-theming@5.17.1(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 - '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.0) + '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.1) prop-types: 15.8.1 - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@mui/styled-engine@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)': + '@mui/styled-engine@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.2.0 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) - '@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)': + '@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 - '@mui/private-theming': 5.17.1(@types/react@19.2.2)(react@19.2.0) - '@mui/styled-engine': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0) + '@mui/private-theming': 5.17.1(@types/react@19.2.2)(react@19.2.1) + '@mui/styled-engine': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(react@19.2.1) '@mui/types': 7.2.24(@types/react@19.2.2) - '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.0) + '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 19.2.0 + react: 19.2.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) '@types/react': 19.2.2 '@mui/types@7.2.24(@types/react@19.2.2)': optionalDependencies: '@types/react': 19.2.2 - '@mui/utils@5.17.1(@types/react@19.2.2)(react@19.2.0)': + '@mui/utils@5.17.1(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@mui/types': 7.2.24(@types/react@19.2.2) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 19.2.0 + react: 19.2.1 react-is: 19.1.1 optionalDependencies: '@types/react': 19.2.2 - '@mui/x-internals@7.29.0(@types/react@19.2.2)(react@19.2.0)': + '@mui/x-internals@7.29.0(@types/react@19.2.2)(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 - '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 transitivePeerDependencies: - '@types/react' - '@mui/x-tree-view@7.29.10(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@mui/x-tree-view@7.29.10(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 - '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) - '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.0) - '@mui/x-internals': 7.29.0(@types/react@19.2.2)(react@19.2.0) + '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) + '@mui/utils': 5.17.1(@types/react@19.2.2)(react@19.2.1) + '@mui/x-internals': 7.29.0(@types/react@19.2.2)(react@19.2.1) '@types/react-transition-group': 4.4.12(@types/react@19.2.2) clsx: 2.1.1 prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.1))(@types/react@19.2.2)(react@19.2.1) transitivePeerDependencies: - '@types/react' @@ -7527,486 +7527,486 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) aria-hidden: 1.2.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-id@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) aria-hidden: 1.2.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) aria-hidden: 1.2.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.1) '@radix-ui/rect': 1.1.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) aria-hidden: 1.2.6 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 - use-sync-external-store: 1.6.0(react@19.2.0) + react: 19.2.1 + use-sync-external-store: 1.6.0(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.2)(react@19.2.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.2)(react@19.2.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0) - react: 19.2.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.1) + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) @@ -8103,23 +8103,23 @@ snapshots: '@storybook/addon-docs@9.1.2(@types/react@19.2.2)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': dependencies: - '@mdx-js/react': 3.0.1(@types/react@19.2.2)(react@19.2.0) + '@mdx-js/react': 3.0.1(@types/react@19.2.2)(react@19.2.1) '@storybook/csf-plugin': 9.1.2(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) - '@storybook/icons': 1.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@storybook/react-dom-shim': 9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@storybook/icons': 1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@storybook/react-dom-shim': 9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-links@9.1.2(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': + '@storybook/addon-links@9.1.2(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': dependencies: '@storybook/global': 5.0.0 storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) optionalDependencies: - react: 19.2.0 + react: 19.2.1 '@storybook/addon-themes@9.1.2(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': dependencies: @@ -8140,28 +8140,28 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.4.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@storybook/icons@1.4.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@storybook/react-dom-shim@9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': + '@storybook/react-dom-shim@9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))': dependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) - '@storybook/react-vite@9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.5)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))': + '@storybook/react-vite@9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(rollup@4.52.5)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.6.3)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) '@rollup/pluginutils': 5.0.5(rollup@4.52.5) '@storybook/builder-vite': 9.1.2(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) - '@storybook/react': 9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3) + '@storybook/react': 9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3) find-up: 7.0.0 magic-string: 0.30.17 - react: 19.2.0 + react: 19.2.1 react-docgen: 8.0.0 - react-dom: 19.2.0(react@19.2.0) + react-dom: 19.2.1(react@19.2.1) resolve: 1.22.10 storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) tsconfig-paths: 4.2.0 @@ -8171,12 +8171,12 @@ snapshots: - supports-color - typescript - '@storybook/react@9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)': + '@storybook/react@9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)))(typescript@5.6.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@storybook/react-dom-shim': 9.1.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) optionalDependencies: typescript: 5.6.3 @@ -8245,16 +8245,16 @@ snapshots: '@tanstack/query-devtools@5.76.0': {} - '@tanstack/react-query-devtools@5.77.0(@tanstack/react-query@5.77.0(react@19.2.0))(react@19.2.0)': + '@tanstack/react-query-devtools@5.77.0(@tanstack/react-query@5.77.0(react@19.2.1))(react@19.2.1)': dependencies: '@tanstack/query-devtools': 5.76.0 - '@tanstack/react-query': 5.77.0(react@19.2.0) - react: 19.2.0 + '@tanstack/react-query': 5.77.0(react@19.2.1) + react: 19.2.1 - '@tanstack/react-query@5.77.0(react@19.2.0)': + '@tanstack/react-query@5.77.0(react@19.2.1)': dependencies: '@tanstack/query-core': 5.77.0 - react: 19.2.0 + react: 19.2.1 '@testing-library/dom@10.4.0': dependencies: @@ -8287,13 +8287,13 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@14.3.1(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@testing-library/react@14.3.1(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 9.3.3 '@types/react-dom': 18.3.7(@types/react@19.2.2) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' @@ -8545,9 +8545,9 @@ snapshots: dependencies: '@types/react': 19.2.2 - '@types/react-virtualized-auto-sizer@1.0.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@types/react-virtualized-auto-sizer@1.0.8(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: - react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.1(react@19.2.1))(react@19.2.1) transitivePeerDependencies: - react - react-dom @@ -9139,14 +9139,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + cmdk@1.1.1(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -9845,14 +9845,14 @@ snapshots: dependencies: fd-package-json: 2.0.0 - formik@2.4.6(react@19.2.0): + formik@2.4.6(react@19.2.1): dependencies: '@types/hoist-non-react-statics': 3.3.5 deepmerge: 2.2.1 hoist-non-react-statics: 3.3.2 lodash: 4.17.21 lodash-es: 4.17.21 - react: 19.2.0 + react: 19.2.1 react-fast-compare: 2.0.4 tiny-warning: 1.0.3 tslib: 2.6.2 @@ -10900,9 +10900,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.552.0(react@19.2.0): + lucide-react@0.552.0(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 luxon@3.3.0: {} @@ -11736,29 +11736,29 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-color@2.19.3(react@19.2.0): + react-color@2.19.3(react@19.2.1): dependencies: - '@icons/material': 0.2.4(react@19.2.0) + '@icons/material': 0.2.4(react@19.2.1) lodash: 4.17.21 lodash-es: 4.17.21 material-colors: 1.2.6 prop-types: 15.8.1 - react: 19.2.0 - reactcss: 1.2.3(react@19.2.0) + react: 19.2.1 + reactcss: 1.2.3(react@19.2.1) tinycolor2: 1.6.0 - react-confetti@6.4.0(react@19.2.0): + react-confetti@6.4.0(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 tween-functions: 1.2.0 - react-date-range@1.4.0(date-fns@2.30.0)(react@19.2.0): + react-date-range@1.4.0(date-fns@2.30.0)(react@19.2.1): dependencies: classnames: 2.3.2 date-fns: 2.30.0 prop-types: 15.8.1 - react: 19.2.0 - react-list: 0.8.17(react@19.2.0) + react: 19.2.1 + react-list: 0.8.17(react@19.2.1) shallow-equal: 1.2.1 react-docgen-typescript@2.2.2(typescript@5.6.3): @@ -11780,16 +11780,16 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@19.2.0(react@19.2.0): + react-dom@19.2.1(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 scheduler: 0.27.0 react-fast-compare@2.0.4: {} - react-inspector@6.0.2(react@19.2.0): + react-inspector@6.0.2(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 react-is@16.13.1: {} @@ -11799,12 +11799,12 @@ snapshots: react-is@19.1.1: {} - react-list@0.8.17(react@19.2.0): + react-list@0.8.17(react@19.2.1): dependencies: prop-types: 15.8.1 - react: 19.2.0 + react: 19.2.1 - react-markdown@9.1.0(@types/react@19.2.2)(react@19.2.0): + react-markdown@9.1.0(@types/react@19.2.2)(react@19.2.1): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -11813,7 +11813,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.2.0 + react: 19.2.1 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -11824,100 +11824,100 @@ snapshots: react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.2.0): + react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 - react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.1) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.2 - react-remove-scroll@2.7.1(@types/react@19.2.2)(react@19.2.0): + react-remove-scroll@2.7.1(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.2)(react@19.2.0) - react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.2)(react@19.2.1) + react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.2)(react@19.2.0) - use-sidecar: 1.1.3(@types/react@19.2.2)(react@19.2.0) + use-callback-ref: 1.3.3(@types/react@19.2.2)(react@19.2.1) + use-sidecar: 1.1.3(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 - react-resizable-panels@3.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-resizable-panels@3.0.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react-router@7.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-router@7.9.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: cookie: 1.0.2 - react: 19.2.0 + react: 19.2.1 set-cookie-parser: 2.7.2 optionalDependencies: - react-dom: 19.2.0(react@19.2.0) + react-dom: 19.2.1(react@19.2.1) - react-smooth@4.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-smooth@4.0.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: fast-equals: 5.3.2 prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) - react-style-singleton@2.2.3(@types/react@19.2.2)(react@19.2.0): + react-style-singleton@2.2.3(@types/react@19.2.2)(react@19.2.1): dependencies: get-nonce: 1.0.1 - react: 19.2.0 + react: 19.2.1 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.2 - react-syntax-highlighter@15.6.1(react@19.2.0): + react-syntax-highlighter@15.6.1(react@19.2.1): dependencies: '@babel/runtime': 7.26.10 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.30.0 - react: 19.2.0 + react: 19.2.1 refractor: 3.6.0 - react-textarea-autosize@8.5.9(@types/react@19.2.2)(react@19.2.0): + react-textarea-autosize@8.5.9(@types/react@19.2.2)(react@19.2.1): dependencies: '@babel/runtime': 7.26.10 - react: 19.2.0 - use-composed-ref: 1.4.0(@types/react@19.2.2)(react@19.2.0) - use-latest: 1.3.0(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + use-composed-ref: 1.4.0(@types/react@19.2.2)(react@19.2.1) + use-latest: 1.3.0(@types/react@19.2.2)(react@19.2.1) transitivePeerDependencies: - '@types/react' - react-transition-group@4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-transition-group@4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.26.10 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react-virtualized-auto-sizer@1.0.26(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-virtualized-auto-sizer@1.0.26(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react-window@1.8.11(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-window@1.8.11(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.26.10 memoize-one: 5.2.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react@19.2.0: {} + react@19.2.1: {} - reactcss@1.2.3(react@19.2.0): + reactcss@1.2.3(react@19.2.1): dependencies: lodash: 4.17.21 - react: 19.2.0 + react: 19.2.1 read-cache@1.0.0: dependencies: @@ -11957,15 +11957,15 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.15.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + recharts@2.15.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.21 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-is: 18.3.1 - react-smooth: 4.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react-smooth: 4.0.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) recharts-scale: 0.4.5 tiny-invariant: 1.3.3 victory-vendor: 36.9.2 @@ -12261,16 +12261,16 @@ snapshots: dependencies: internal-slot: 1.0.6 - storybook-addon-remix-react-router@5.0.0(react-dom@19.2.0(react@19.2.0))(react-router@7.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(react@19.2.0)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))): + storybook-addon-remix-react-router@5.0.0(react-dom@19.2.1(react@19.2.1))(react-router@7.9.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(react@19.2.1)(storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0))): dependencies: '@mjackson/form-data-parser': 0.4.0 compare-versions: 6.1.0 - react-inspector: 6.0.2(react@19.2.0) - react-router: 7.9.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react-inspector: 6.0.2(react@19.2.1) + react-router: 7.9.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) storybook: 9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)) optionalDependencies: - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) storybook@9.1.16(@testing-library/dom@10.4.0)(msw@2.4.8(typescript@5.6.3))(prettier@3.4.1)(vite@7.1.12(@types/node@20.17.16)(jiti@1.21.7)(yaml@2.7.0)): dependencies: @@ -12667,43 +12667,43 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.3(@types/react@19.2.2)(react@19.2.0): + use-callback-ref@1.3.3(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.2 - use-composed-ref@1.4.0(@types/react@19.2.2)(react@19.2.0): + use-composed-ref@1.4.0(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - use-isomorphic-layout-effect@1.2.1(@types/react@19.2.2)(react@19.2.0): + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 optionalDependencies: '@types/react': 19.2.2 - use-latest@1.3.0(@types/react@19.2.2)(react@19.2.0): + use-latest@1.3.0(@types/react@19.2.2)(react@19.2.1): dependencies: - react: 19.2.0 - use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.2)(react@19.2.0) + react: 19.2.1 + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.2)(react@19.2.1) optionalDependencies: '@types/react': 19.2.2 - use-sidecar@1.1.3(@types/react@19.2.2)(react@19.2.0): + use-sidecar@1.1.3(@types/react@19.2.2)(react@19.2.1): dependencies: detect-node-es: 1.1.0 - react: 19.2.0 + react: 19.2.1 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.2 - use-sync-external-store@1.6.0(react@19.2.0): + use-sync-external-store@1.6.0(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 util-deprecate@1.0.2: {} diff --git a/site/src/pages/TasksPage/TasksPage.tsx b/site/src/pages/TasksPage/TasksPage.tsx index e5009ae753be3..063fec30b9d46 100644 --- a/site/src/pages/TasksPage/TasksPage.tsx +++ b/site/src/pages/TasksPage/TasksPage.tsx @@ -27,7 +27,7 @@ import { selectDisabledPreferences, } from "modules/notifications/utils"; import { TaskPrompt } from "modules/tasks/TaskPrompt/TaskPrompt"; -import { type FC, useState } from "react"; +import type { FC } from "react"; import { useMutation, useQueries, useQuery, useQueryClient } from "react-query"; import { cn } from "utils/cn"; import { pageTitle } from "utils/page"; From bd76c602e4f0a9f5bc98c6d45e13115219c1d81d Mon Sep 17 00:00:00 2001 From: "blinkagent[bot]" <237617714+blinkagent[bot]@users.noreply.github.com> Date: Mon, 29 Dec 2025 13:29:28 +0500 Subject: [PATCH 11/90] chore: add antigravity to allowed protocols list (#20873) (#21122) Co-authored-by: DevCats Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> Co-authored-by: Atif Ali --- site/src/modules/apps/apps.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/site/src/modules/apps/apps.ts b/site/src/modules/apps/apps.ts index 3f1cfecea784f..89effd4d2ad99 100644 --- a/site/src/modules/apps/apps.ts +++ b/site/src/modules/apps/apps.ts @@ -24,6 +24,7 @@ const ALLOWED_EXTERNAL_APP_PROTOCOLS = [ "jetbrains:", "kiro:", "positron:", + "antigravity:", ]; type GetVSCodeHrefParams = { From 2314e4a94ee53ef4616b1b856f1d0281103398fd Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Tue, 20 Jan 2026 11:19:53 +0100 Subject: [PATCH 12/90] fix: backport update boundary version to 2.29 (#21290) (#21575) fix: update boundary version https://github.com/coder/coder/pull/21290 required by https://github.com/coder/coder/pull/21561 Co-authored-by: Yevhenii Shcherbina --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 44713ef25fc17..b491d0f5d1d83 100644 --- a/go.mod +++ b/go.mod @@ -478,7 +478,7 @@ require ( github.com/coder/agentapi-sdk-go v0.0.0-20250505131810-560d1d88d225 github.com/coder/aibridge v0.2.0 github.com/coder/aisdk-go v0.0.9 - github.com/coder/boundary v1.0.1-0.20250925154134-55a44f2a7945 + github.com/coder/boundary v0.0.1-alpha github.com/coder/preview v1.0.4 github.com/danieljoos/wincred v1.2.3 github.com/dgraph-io/ristretto/v2 v2.3.0 @@ -515,7 +515,7 @@ require ( github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/buger/jsonparser v1.1.1 // indirect - github.com/cenkalti/backoff/v5 v5.0.2 // indirect + github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/charmbracelet/x/exp/slice v0.0.0-20250327172914-2fdc97757edf // indirect github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect diff --git a/go.sum b/go.sum index 2cdd8dcccfbb9..785697240cccb 100644 --- a/go.sum +++ b/go.sum @@ -854,8 +854,8 @@ github.com/cakturk/go-netstat v0.0.0-20200220111822-e5b49efee7a5 h1:BjkPE3785EwP github.com/cakturk/go-netstat v0.0.0-20200220111822-e5b49efee7a5/go.mod h1:jtAfVaU/2cu1+wdSRPWE2c1N2qeAA3K4RH9pYgqwets= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= -github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= @@ -923,8 +923,8 @@ github.com/coder/aibridge v0.2.0 h1:kAWhHD6fsmDLH1WxIwXPu9Ineijj+lVniko45C003Vo= github.com/coder/aibridge v0.2.0/go.mod h1:2T0RSnIX1WTqFajzXsaNsoNe6mmNsNeCTxiHBWEsFnE= github.com/coder/aisdk-go v0.0.9 h1:Vzo/k2qwVGLTR10ESDeP2Ecek1SdPfZlEjtTfMveiVo= github.com/coder/aisdk-go v0.0.9/go.mod h1:KF6/Vkono0FJJOtWtveh5j7yfNrSctVTpwgweYWSp5M= -github.com/coder/boundary v1.0.1-0.20250925154134-55a44f2a7945 h1:hDUf02kTX8EGR3+5B+v5KdYvORs4YNfDPci0zCs+pC0= -github.com/coder/boundary v1.0.1-0.20250925154134-55a44f2a7945/go.mod h1:d1AMFw81rUgrGHuZzWdPNhkY0G8w7pvLNLYF0e3ceC4= +github.com/coder/boundary v0.0.1-alpha h1:6shUQ2zkrWrfbgVcqWvpV2ibljOQvPvYqTctWBkKoUA= +github.com/coder/boundary v0.0.1-alpha/go.mod h1:d1AMFw81rUgrGHuZzWdPNhkY0G8w7pvLNLYF0e3ceC4= github.com/coder/bubbletea v1.2.2-0.20241212190825-007a1cdb2c41 h1:SBN/DA63+ZHwuWwPHPYoCZ/KLAjHv5g4h2MS4f2/MTI= github.com/coder/bubbletea v1.2.2-0.20241212190825-007a1cdb2c41/go.mod h1:I9ULxr64UaOSUv7hcb3nX4kowodJCVS7vt7VVJk/kW4= github.com/coder/clistat v1.1.2 h1:1WzCsEQ/VFBNyxu5ryy0Pdb6rrMh+byCp3aZMkn9k/E= From 2e2d0dde447d5e52a07e13ccc54631aec1867319 Mon Sep 17 00:00:00 2001 From: Kacper Sawicki Date: Tue, 20 Jan 2026 22:46:46 +0100 Subject: [PATCH 13/90] feat(cli): backport #21374 to 2.29 (#21561) backport #21374 to 2.29 feat(cli): add --no-build flag to state push for state-only updates #21374 --- cli/state.go | 17 ++++++ cli/state_test.go | 47 +++++++++++++++++ cli/testdata/coder_state_push_--help.golden | 4 ++ coderd/apidoc/docs.go | 50 ++++++++++++++++++ coderd/apidoc/swagger.json | 46 +++++++++++++++++ coderd/coderd.go | 1 + coderd/workspacebuilds.go | 57 +++++++++++++++++++++ codersdk/workspacebuilds.go | 22 ++++++++ docs/reference/api/builds.md | 38 ++++++++++++++ docs/reference/api/schemas.md | 16 ++++++ docs/reference/cli/state_push.md | 8 +++ site/src/api/typesGenerated.ts | 9 ++++ 12 files changed, 315 insertions(+) diff --git a/cli/state.go b/cli/state.go index 2b8e7f8cc6389..4dac6a3d17192 100644 --- a/cli/state.go +++ b/cli/state.go @@ -87,6 +87,7 @@ func buildNumberOption(n *int64) serpent.Option { func (r *RootCmd) statePush() *serpent.Command { var buildNumber int64 + var noBuild bool cmd := &serpent.Command{ Use: "push ", Short: "Push a Terraform state file to a workspace.", @@ -126,6 +127,16 @@ func (r *RootCmd) statePush() *serpent.Command { return err } + if noBuild { + // Update state directly without triggering a build. + err = client.UpdateWorkspaceBuildState(inv.Context(), build.ID, state) + if err != nil { + return err + } + _, _ = fmt.Fprintln(inv.Stdout, "State updated successfully.") + return nil + } + build, err = client.CreateWorkspaceBuild(inv.Context(), workspace.ID, codersdk.CreateWorkspaceBuildRequest{ TemplateVersionID: build.TemplateVersionID, Transition: build.Transition, @@ -139,6 +150,12 @@ func (r *RootCmd) statePush() *serpent.Command { } cmd.Options = serpent.OptionSet{ buildNumberOption(&buildNumber), + { + Flag: "no-build", + FlagShorthand: "n", + Description: "Update the state without triggering a workspace build. Useful for state-only migrations.", + Value: serpent.BoolOf(&noBuild), + }, } return cmd } diff --git a/cli/state_test.go b/cli/state_test.go index 44b92b2c7960d..88a6b74fd5432 100644 --- a/cli/state_test.go +++ b/cli/state_test.go @@ -2,6 +2,7 @@ package cli_test import ( "bytes" + "context" "fmt" "os" "path/filepath" @@ -10,6 +11,7 @@ import ( "testing" "github.com/coder/coder/v2/coderd/database" + "github.com/coder/coder/v2/coderd/database/dbauthz" "github.com/coder/coder/v2/coderd/database/dbfake" "github.com/stretchr/testify/require" @@ -158,4 +160,49 @@ func TestStatePush(t *testing.T) { err := inv.Run() require.NoError(t, err) }) + + t.Run("NoBuild", func(t *testing.T) { + t.Parallel() + client, store := coderdtest.NewWithDatabase(t, nil) + owner := coderdtest.CreateFirstUser(t, client) + templateAdmin, taUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin()) + initialState := []byte("initial state") + r := dbfake.WorkspaceBuild(t, store, database.WorkspaceTable{ + OrganizationID: owner.OrganizationID, + OwnerID: taUser.ID, + }). + Seed(database.WorkspaceBuild{ProvisionerState: initialState}). + Do() + wantState := []byte("updated state") + stateFile, err := os.CreateTemp(t.TempDir(), "") + require.NoError(t, err) + _, err = stateFile.Write(wantState) + require.NoError(t, err) + err = stateFile.Close() + require.NoError(t, err) + + inv, root := clitest.New(t, "state", "push", "--no-build", r.Workspace.Name, stateFile.Name()) + clitest.SetupConfig(t, templateAdmin, root) + var stdout bytes.Buffer + inv.Stdout = &stdout + err = inv.Run() + require.NoError(t, err) + require.Contains(t, stdout.String(), "State updated successfully") + + // Verify the state was updated by pulling it. + inv, root = clitest.New(t, "state", "pull", r.Workspace.Name) + var gotState bytes.Buffer + inv.Stdout = &gotState + clitest.SetupConfig(t, templateAdmin, root) + err = inv.Run() + require.NoError(t, err) + require.Equal(t, wantState, bytes.TrimSpace(gotState.Bytes())) + + // Verify no new build was created. + builds, err := store.GetWorkspaceBuildsByWorkspaceID(dbauthz.AsSystemRestricted(context.Background()), database.GetWorkspaceBuildsByWorkspaceIDParams{ + WorkspaceID: r.Workspace.ID, + }) + require.NoError(t, err) + require.Len(t, builds, 1, "expected only the initial build, no new build should be created") + }) } diff --git a/cli/testdata/coder_state_push_--help.golden b/cli/testdata/coder_state_push_--help.golden index 06764846c3378..df73146cfe146 100644 --- a/cli/testdata/coder_state_push_--help.golden +++ b/cli/testdata/coder_state_push_--help.golden @@ -9,5 +9,9 @@ OPTIONS: -b, --build int Specify a workspace build to target by name. Defaults to latest. + -n, --no-build bool + Update the state without triggering a workspace build. Useful for + state-only migrations. + ——— Run `coder --help` for a list of global options. diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index f80959192d279..6d6b8c3c8ed2b 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -10182,6 +10182,45 @@ const docTemplate = `{ } } } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": [ + "application/json" + ], + "tags": [ + "Builds" + ], + "summary": "Update workspace build state", + "operationId": "update-workspace-build-state", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace build ID", + "name": "workspacebuild", + "in": "path", + "required": true + }, + { + "description": "Request body", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateWorkspaceBuildStateRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } } }, "/workspacebuilds/{workspacebuild}/timings": { @@ -19402,6 +19441,17 @@ const docTemplate = `{ } } }, + "codersdk.UpdateWorkspaceBuildStateRequest": { + "type": "object", + "properties": { + "state": { + "type": "array", + "items": { + "type": "integer" + } + } + } + }, "codersdk.UpdateWorkspaceDormancy": { "type": "object", "properties": { diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 8d54e2b3109b7..ff55f71203682 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -9014,6 +9014,41 @@ } } } + }, + "put": { + "security": [ + { + "CoderSessionToken": [] + } + ], + "consumes": ["application/json"], + "tags": ["Builds"], + "summary": "Update workspace build state", + "operationId": "update-workspace-build-state", + "parameters": [ + { + "type": "string", + "format": "uuid", + "description": "Workspace build ID", + "name": "workspacebuild", + "in": "path", + "required": true + }, + { + "description": "Request body", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/codersdk.UpdateWorkspaceBuildStateRequest" + } + } + ], + "responses": { + "204": { + "description": "No Content" + } + } } }, "/workspacebuilds/{workspacebuild}/timings": { @@ -17794,6 +17829,17 @@ } } }, + "codersdk.UpdateWorkspaceBuildStateRequest": { + "type": "object", + "properties": { + "state": { + "type": "array", + "items": { + "type": "integer" + } + } + } + }, "codersdk.UpdateWorkspaceDormancy": { "type": "object", "properties": { diff --git a/coderd/coderd.go b/coderd/coderd.go index e79a2226ba1f6..5b15938d660ff 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -1501,6 +1501,7 @@ func New(options *Options) *API { r.Get("/parameters", api.workspaceBuildParameters) r.Get("/resources", api.workspaceBuildResourcesDeprecated) r.Get("/state", api.workspaceBuildState) + r.Put("/state", api.workspaceBuildUpdateState) r.Get("/timings", api.workspaceBuildTimings) }) r.Route("/authcheck", func(r chi.Router) { diff --git a/coderd/workspacebuilds.go b/coderd/workspacebuilds.go index 0c58b902e2158..f5eedea9fac0b 100644 --- a/coderd/workspacebuilds.go +++ b/coderd/workspacebuilds.go @@ -849,6 +849,63 @@ func (api *API) workspaceBuildState(rw http.ResponseWriter, r *http.Request) { _, _ = rw.Write(workspaceBuild.ProvisionerState) } +// @Summary Update workspace build state +// @ID update-workspace-build-state +// @Security CoderSessionToken +// @Accept json +// @Tags Builds +// @Param workspacebuild path string true "Workspace build ID" format(uuid) +// @Param request body codersdk.UpdateWorkspaceBuildStateRequest true "Request body" +// @Success 204 +// @Router /workspacebuilds/{workspacebuild}/state [put] +func (api *API) workspaceBuildUpdateState(rw http.ResponseWriter, r *http.Request) { + ctx := r.Context() + workspaceBuild := httpmw.WorkspaceBuildParam(r) + workspace, err := api.Database.GetWorkspaceByID(ctx, workspaceBuild.WorkspaceID) + if err != nil { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "No workspace exists for this job.", + }) + return + } + template, err := api.Database.GetTemplateByID(ctx, workspace.TemplateID) + if err != nil { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "Failed to get template", + Detail: err.Error(), + }) + return + } + + // You must have update permissions on the template to update the state. + if !api.Authorize(r, policy.ActionUpdate, template.RBACObject()) { + httpapi.ResourceNotFound(rw) + return + } + + var req codersdk.UpdateWorkspaceBuildStateRequest + if !httpapi.Read(ctx, rw, r, &req) { + return + } + + // Use system context since we've already verified authorization via template permissions. + // nolint:gocritic // System access required for provisioner state update. + err = api.Database.UpdateWorkspaceBuildProvisionerStateByID(dbauthz.AsSystemRestricted(ctx), database.UpdateWorkspaceBuildProvisionerStateByIDParams{ + ID: workspaceBuild.ID, + ProvisionerState: req.State, + UpdatedAt: dbtime.Now(), + }) + if err != nil { + httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ + Message: "Failed to update workspace build state.", + Detail: err.Error(), + }) + return + } + + rw.WriteHeader(http.StatusNoContent) +} + // @Summary Get workspace build timings by ID // @ID get-workspace-build-timings-by-id // @Security CoderSessionToken diff --git a/codersdk/workspacebuilds.go b/codersdk/workspacebuilds.go index a91148ab2ad9e..78efbb4eaa70d 100644 --- a/codersdk/workspacebuilds.go +++ b/codersdk/workspacebuilds.go @@ -188,6 +188,28 @@ func (c *Client) WorkspaceBuildState(ctx context.Context, build uuid.UUID) ([]by return io.ReadAll(res.Body) } +// UpdateWorkspaceBuildStateRequest is the request body for updating the +// provisioner state of a workspace build. +type UpdateWorkspaceBuildStateRequest struct { + State []byte `json:"state"` +} + +// UpdateWorkspaceBuildState updates the provisioner state of the build without +// triggering a new build. This is useful for state-only migrations. +func (c *Client) UpdateWorkspaceBuildState(ctx context.Context, build uuid.UUID, state []byte) error { + res, err := c.Request(ctx, http.MethodPut, fmt.Sprintf("/api/v2/workspacebuilds/%s/state", build), UpdateWorkspaceBuildStateRequest{ + State: state, + }) + if err != nil { + return err + } + defer res.Body.Close() + if res.StatusCode != http.StatusNoContent { + return ReadBodyAsError(res) + } + return nil +} + func (c *Client) WorkspaceBuildByUsernameAndWorkspaceNameAndBuildNumber(ctx context.Context, username string, workspaceName string, buildNumber string) (WorkspaceBuild, error) { res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/users/%s/workspace/%s/builds/%s", username, workspaceName, buildNumber), nil) if err != nil { diff --git a/docs/reference/api/builds.md b/docs/reference/api/builds.md index dd7323886e179..e540012982c83 100644 --- a/docs/reference/api/builds.md +++ b/docs/reference/api/builds.md @@ -1213,6 +1213,44 @@ curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/sta To perform this operation, you must be authenticated. [Learn more](authentication.md). +## Update workspace build state + +### Code samples + +```shell +# Example request using curl +curl -X PUT http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/state \ + -H 'Content-Type: application/json' \ + -H 'Coder-Session-Token: API_KEY' +``` + +`PUT /workspacebuilds/{workspacebuild}/state` + +> Body parameter + +```json +{ + "state": [ + 0 + ] +} +``` + +### Parameters + +| Name | In | Type | Required | Description | +|------------------|------|--------------------------------------------------------------------------------------------------|----------|--------------------| +| `workspacebuild` | path | string(uuid) | true | Workspace build ID | +| `body` | body | [codersdk.UpdateWorkspaceBuildStateRequest](schemas.md#codersdkupdateworkspacebuildstaterequest) | true | Request body | + +### Responses + +| Status | Meaning | Description | Schema | +|--------|-----------------------------------------------------------------|-------------|--------| +| 204 | [No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5) | No Content | | + +To perform this operation, you must be authenticated. [Learn more](authentication.md). + ## Get workspace build timings by ID ### Code samples diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md index 7f88558c75503..0a1166a4f3ec2 100644 --- a/docs/reference/api/schemas.md +++ b/docs/reference/api/schemas.md @@ -9456,6 +9456,22 @@ If the schedule is empty, the user will be updated to use the default schedule.| |------------|--------|----------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `schedule` | string | false | | Schedule is expected to be of the form `CRON_TZ= * * ` Example: `CRON_TZ=US/Central 30 9 * * 1-5` represents 0930 in the timezone US/Central on weekdays (Mon-Fri). `CRON_TZ` defaults to UTC if not present. | +## codersdk.UpdateWorkspaceBuildStateRequest + +```json +{ + "state": [ + 0 + ] +} +``` + +### Properties + +| Name | Type | Required | Restrictions | Description | +|---------|------------------|----------|--------------|-------------| +| `state` | array of integer | false | | | + ## codersdk.UpdateWorkspaceDormancy ```json diff --git a/docs/reference/cli/state_push.md b/docs/reference/cli/state_push.md index 039b03fc01c2f..7796d0ba8d562 100644 --- a/docs/reference/cli/state_push.md +++ b/docs/reference/cli/state_push.md @@ -18,3 +18,11 @@ coder state push [flags] | Type | int | Specify a workspace build to target by name. Defaults to latest. + +### -n, --no-build + +| | | +|------|-------------------| +| Type | bool | + +Update the state without triggering a workspace build. Useful for state-only migrations. diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index a2b439222eedf..75bcfec0a7f77 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -5543,6 +5543,15 @@ export interface UpdateWorkspaceAutostartRequest { readonly schedule?: string; } +// From codersdk/workspacebuilds.go +/** + * UpdateWorkspaceBuildStateRequest is the request body for updating the + * provisioner state of a workspace build. + */ +export interface UpdateWorkspaceBuildStateRequest { + readonly state: string; +} + // From codersdk/workspaces.go /** * UpdateWorkspaceDormancy is a request to activate or make a workspace dormant. From b5360a9180613328a62d64efcfaac5a31980c746 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 21 Jan 2026 15:45:58 +0000 Subject: [PATCH 14/90] fix: backport migration fixes (#21611) * https://github.com/coder/coder/pull/21493 * https://github.com/coder/coder/pull/21496 * https://github.com/coder/coder/pull/21530 NB these commits were originally authored by Blink on behalf of @dannykopping, so amended to reflect actual authorship. **Repro/Verification Steps:** * Created a Coder deployment with a non-public schema via Docker compose on v2.28.6: * Created a DB init script under `db-init/01-create-schema.sql` with the following: ```sql CREATE SCHEMA IF NOT EXISTS coder AUTHORIZATION coder; GRANT ALL PRIVILEGES ON SCHEMA coder TO coder; ALTER ROLE coder SET search_path TO coder; ``` * Mounted above inside the `postgres` container: ```diff volumes: - coder_data:/var/lib/postgresql/data + - ./db-init:/docker-entrypoint-initdb.d:ro ``` * Edited `CODER_PG_CONNECTION_URL` to update the search path: ```diff environment: - CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@database/${POSTGRES_DB:-coder}?sslmode=disable" + CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@database/${POSTGRES_DB:-coder}?sslmode=disable&search_path=coder" ``` * Brought up the deployment: ```shell CODER_VERSION=v2.28.6 CODER_ACCESS_URL=http://localhost:7080 POSTGRES_USER=coder POSTGRES_PASSWORD=coder docker compose up` ``` * Created user / template / workspace * Updated to `v2.29.1`: * ```shell CODER_VERSION=v2.29.1 CODER_ACCESS_URL=http://localhost:7080 POSTGRES_USER=coder POSTGRES_PASSWORD=coder docker compose up` ``` * Observed following error: ``` database-1 | 2026-01-21 15:07:17.629 UTC [102] ERROR: relation "public.workspace_agents" does not exist coder-1 | Encountered an error running "coder server", see "coder server --help" for more information database-1 | 2026-01-21 15:07:17.629 UTC [102] STATEMENT: CREATE INDEX IF NOT EXISTS workspace_agents_auth_instance_id_deleted_idx ON public.workspace_agents (auth_instance_id, deleted); coder-1 | error: connect to postgres: connect to postgres: migrate up: up: 2 errors occurred: coder-1 | * run statement: migration failed: relation "public.workspace_agents" does not exist in line 0: CREATE INDEX IF NOT EXISTS workspace_agents_auth_instance_id_deleted_idx ON public.workspace_agents (auth_instance_id, deleted); coder-1 | (details: pq: relation "public.workspace_agents" does not exist) coder-1 | * commit tx on unlock: pq: Could not complete operation in a failed transaction coder-1 exited with code 1 ``` * Built image locally: ```console $ make build/coder_$(./scripts/version.sh)_linux_amd64.tag ... ghcr.io/coder/coder:v2.29.1-devel-e8c482a98a67-amd64 ``` * Started with new image: ```shell CODER_VERSION=v2.29.1-devel-e8c482a98a67-amd64 CODER_ACCESS_URL=http://localhost:7080 POSTGRES_USER=coder POSTGRES_PASSWORD=coder docker compose up ``` * Observed migrations ran successfully and Coder came up successfully --------- Signed-off-by: Danny Kopping Co-authored-by: Danny Kopping Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> --- Makefile | 11 +- ...000401_add_workspace_agents_index.down.sql | 2 +- .../000401_add_workspace_agents_index.up.sql | 2 +- .../fixtures/000022_initial_v0.6.6.up.sql | 1370 ++++++++--------- .../fixtures/000048_userdelete.up.sql | 26 +- .../000150_workspace_app_usage_stats.up.sql | 2 +- .../fixtures/000276_workspace_modules.up.sql | 2 +- .../000291_workspace_parameter_presets.up.sql | 16 +- .../000366_create_tasks_data_model.up.sql | 4 +- ...00379_create_tasks_with_status_view.up.sql | 2 +- scripts/check_pg_schema.sh | 44 + 11 files changed, 767 insertions(+), 714 deletions(-) create mode 100755 scripts/check_pg_schema.sh diff --git a/Makefile b/Makefile index 4997430f9dd1b..939f536792aef 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,9 @@ MOST_GO_SRC_FILES := $(shell \ # All the shell files in the repo, excluding ignored files. SHELL_SRC_FILES := $(shell find . $(FIND_EXCLUSIONS) -type f -name '*.sh') +MIGRATION_FILES := $(shell find ./coderd/database/migrations/ -maxdepth 1 $(FIND_EXCLUSIONS) -type f -name '*.sql') +FIXTURE_FILES := $(shell find ./coderd/database/migrations/testdata/fixtures/ $(FIND_EXCLUSIONS) -type f -name '*.sql') + # Ensure we don't use the user's git configs which might cause side-effects GIT_FLAGS = GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null @@ -561,7 +564,7 @@ endif # Note: we don't run zizmor in the lint target because it takes a while. CI # runs it explicitly. -lint: lint/shellcheck lint/go lint/ts lint/examples lint/helm lint/site-icons lint/markdown lint/actions/actionlint lint/check-scopes +lint: lint/shellcheck lint/go lint/ts lint/examples lint/helm lint/site-icons lint/markdown lint/actions/actionlint lint/check-scopes lint/migrations .PHONY: lint lint/site-icons: @@ -619,6 +622,12 @@ lint/check-scopes: coderd/database/dump.sql go run ./scripts/check-scopes .PHONY: lint/check-scopes +# Verify migrations do not hardcode the public schema. +lint/migrations: + ./scripts/check_pg_schema.sh "Migrations" $(MIGRATION_FILES) + ./scripts/check_pg_schema.sh "Fixtures" $(FIXTURE_FILES) +.PHONY: lint/migrations + # All files generated by the database should be added here, and this can be used # as a target for jobs that need to run after the database is generated. DB_GEN_FILES := \ diff --git a/coderd/database/migrations/000401_add_workspace_agents_index.down.sql b/coderd/database/migrations/000401_add_workspace_agents_index.down.sql index 3b2a25345fc2b..bd2bbe47cbd3e 100644 --- a/coderd/database/migrations/000401_add_workspace_agents_index.down.sql +++ b/coderd/database/migrations/000401_add_workspace_agents_index.down.sql @@ -1 +1 @@ -DROP INDEX IF EXISTS public.workspace_agents_auth_instance_id_deleted_idx; +DROP INDEX IF EXISTS workspace_agents_auth_instance_id_deleted_idx; diff --git a/coderd/database/migrations/000401_add_workspace_agents_index.up.sql b/coderd/database/migrations/000401_add_workspace_agents_index.up.sql index db67cb400f171..dbaaad68422ad 100644 --- a/coderd/database/migrations/000401_add_workspace_agents_index.up.sql +++ b/coderd/database/migrations/000401_add_workspace_agents_index.up.sql @@ -1 +1 @@ -CREATE INDEX IF NOT EXISTS workspace_agents_auth_instance_id_deleted_idx ON public.workspace_agents (auth_instance_id, deleted); +CREATE INDEX IF NOT EXISTS workspace_agents_auth_instance_id_deleted_idx ON workspace_agents (auth_instance_id, deleted); diff --git a/coderd/database/migrations/testdata/fixtures/000022_initial_v0.6.6.up.sql b/coderd/database/migrations/testdata/fixtures/000022_initial_v0.6.6.up.sql index 102150bf6eb65..2192c9b44d47f 100644 --- a/coderd/database/migrations/testdata/fixtures/000022_initial_v0.6.6.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000022_initial_v0.6.6.up.sql @@ -16,7 +16,7 @@ SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; --- Setting search_path breaks fixtures lacking schema (public.) in queries. +-- Setting search_path breaks fixtures lacking schema () in queries. -- SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; @@ -27,16 +27,16 @@ SET row_security = off; -- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.users VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', 'admin@coder.com', 'admin', '\x2470626b6466322d736861323536243635353335247671694c624664385450734355445664376f723653512479686362786c436d485855327965356e616b4a73416e4868316642576447544b48732f2b6a426b4a716377466e2b362f77376f61354632444e35596458584131425639442f43714f7a7541485a652f6f4a4d674d3451', '2022-11-02 13:02:55.13827+02', '2022-11-02 13:02:55.13827+02', 'active', '{admin}') ON CONFLICT DO NOTHING; -INSERT INTO public.users VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'oauthuser1@coder.com', 'oauthuser1', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}') ON CONFLICT DO NOTHING; +INSERT INTO users VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', 'admin@coder.com', 'admin', '\x2470626b6466322d736861323536243635353335247671694c624664385450734355445664376f723653512479686362786c436d485855327965356e616b4a73416e4868316642576447544b48732f2b6a426b4a716377466e2b362f77376f61354632444e35596458584131425639442f43714f7a7541485a652f6f4a4d674d3451', '2022-11-02 13:02:55.13827+02', '2022-11-02 13:02:55.13827+02', 'active', '{admin}') ON CONFLICT DO NOTHING; +INSERT INTO users VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'oauthuser1@coder.com', 'oauthuser1', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}') ON CONFLICT DO NOTHING; -- -- Data for Name: api_keys; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.api_keys VALUES ('WEG2T4MNno', '\x50ae3bffeac2d2a30e3a7534ca67400c4190c513f2044b5721954b72a1b66ca0', '30095c71-380b-457a-8995-97b8ee6e5307', '2022-11-02 13:03:25.653862+02', '2022-11-03 13:02:55.340963+02', '2022-11-02 13:02:55.340964+02', '2022-11-02 13:02:55.340964+02', 'password', '', '', '', '0001-01-01 01:39:49+01:39:49', 86400) ON CONFLICT DO NOTHING; -INSERT INTO public.api_keys VALUES ('peuLZhMXt4', '\x665200a4744e4f318551a7ca6944e070774e8903a680e8a0a592e0f2c328efb3', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '2022-11-02 13:05:21.681575+02', '2022-11-03 13:05:21.449566+02', '2022-11-02 13:05:21.449567+02', '2022-11-02 13:05:21.449567+02', 'github', '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', '', '', '0001-01-01 01:39:49+01:39:49', 86400) ON CONFLICT DO NOTHING; +INSERT INTO api_keys VALUES ('WEG2T4MNno', '\x50ae3bffeac2d2a30e3a7534ca67400c4190c513f2044b5721954b72a1b66ca0', '30095c71-380b-457a-8995-97b8ee6e5307', '2022-11-02 13:03:25.653862+02', '2022-11-03 13:02:55.340963+02', '2022-11-02 13:02:55.340964+02', '2022-11-02 13:02:55.340964+02', 'password', '', '', '', '0001-01-01 01:39:49+01:39:49', 86400) ON CONFLICT DO NOTHING; +INSERT INTO api_keys VALUES ('peuLZhMXt4', '\x665200a4744e4f318551a7ca6944e070774e8903a680e8a0a592e0f2c328efb3', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '2022-11-02 13:05:21.681575+02', '2022-11-03 13:05:21.449566+02', '2022-11-02 13:05:21.449567+02', '2022-11-02 13:05:21.449567+02', 'github', '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', '', '', '0001-01-01 01:39:49+01:39:49', 86400) ON CONFLICT DO NOTHING; -- @@ -49,14 +49,14 @@ INSERT INTO public.api_keys VALUES ('peuLZhMXt4', '\x665200a4744e4f318551a7ca694 -- Data for Name: files; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.files VALUES ('5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', '2022-11-02 13:03:31.667863+02', '30095c71-380b-457a-8995-97b8ee6e5307', 'application/x-tar', '\x524541444d452e6d64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303031333636003134333330343437313532003031313733360020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d616600000000000000000000000000000000000000000000000000000000003030303030303000303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d2d2d0a6e616d653a20446576656c6f7020636f64652d73657276657220696e20446f636b65720a6465736372697074696f6e3a2052756e20636f64652d73657276657220696e206120446f636b657220646576656c6f706d656e7420656e7669726f6e6d656e740a746167733a205b6c6f63616c2c20646f636b65725d0a2d2d2d0a0a2320636f64652d73657276657220696e20446f636b65720a0a23232047657474696e6720737461727465640a0a52756e2060636f6465722074656d706c6174657320696e69746020616e642073656c65637420746869732074656d706c6174652e20466f6c6c6f772074686520696e737472756374696f6e732074686174206170706561722e0a0a232320537570706f7274656420506172616d65746572730a0a596f752063616e2063726561746520612066696c6520636f6e7461696e696e6720706172616d657465727320616e6420706173732074686520617267756d656e740a602d2d706172616d657465722d66696c656020746f2060636f6465722074656d706c6174657320637265617465602e0a5365652060706172616d732e73616d706c652e79616d6c6020666f72206d6f726520696e666f726d6174696f6e2e0a0a546869732074656d706c617465206861732074686520666f6c6c6f77696e6720707265646566696e656420706172616d65746572733a0a0a2d2060646f636b65725f686f7374603a205061746820746f20286f722061646472657373206f66292074686520446f636b657220736f636b65742e0a20203e20596f752063616e2064657465726d696e652074686520636f72726563742076616c756520666f7220746869732062792072756e6e696e670a20203e2060646f636b657220636f6e74657874206c73602e0a2d2060646f636b65725f61726368603a20417263686974656374757265206f662074686520686f73742072756e6e696e6720446f636b65722e0a2020546869732063616e2062652060616d643634602c206061726d3634602c206f72206061726d7637602e0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d61696e2e74660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303034323631003134333330343437313532003031313733330020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d616600000000000000000000000000000000000000000000000000000000003030303030303000303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007465727261666f726d207b0a202072657175697265645f70726f766964657273207b0a20202020636f646572203d207b0a202020202020736f7572636520203d2022636f6465722f636f646572220a20202020202076657273696f6e203d2022302e352e30220a202020207d0a20202020646f636b6572203d207b0a202020202020736f7572636520203d20226b7265757a7765726b65722f646f636b6572220a20202020202076657273696f6e203d20227e3e20322e32302e32220a202020207d0a20207d0a7d0a0a646174612022636f6465725f70726f766973696f6e65722220226d6522207b0a7d0a0a70726f76696465722022646f636b657222207b0a7d0a0a646174612022636f6465725f776f726b73706163652220226d6522207b0a7d0a0a7265736f757263652022636f6465725f6167656e742220226d61696e22207b0a20206172636820202020202020202020203d20646174612e636f6465725f70726f766973696f6e65722e6d652e617263680a20206f73202020202020202020202020203d20226c696e7578220a2020737461727475705f736372697074203d2022636f64652d736572766572202d2d61757468206e6f6e65220a0a20202320546865736520656e7669726f6e6d656e74207661726961626c657320616c6c6f7720796f7520746f206d616b652047697420636f6d6d6974732072696768742061776179206166746572206372656174696e6720610a20202320776f726b73706163652e204e6f7465207468617420746865792074616b6520707265636564656e6365206f76657220636f6e66696775726174696f6e20646566696e656420696e207e2f2e676974636f6e666967210a20202320596f752063616e2072656d6f7665207468697320626c6f636b20696620796f7527642070726566657220746f20636f6e66696775726520476974206d616e75616c6c79206f72207573696e670a20202320646f7466696c65732e202873656520646f63732f646f7466696c65732e6d64290a2020656e76203d207b0a202020204749545f415554484f525f4e414d4520202020203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d220a202020204749545f434f4d4d49545445525f4e414d4520203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d220a202020204749545f415554484f525f454d41494c202020203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65725f656d61696c7d220a202020204749545f434f4d4d49545445525f454d41494c203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65725f656d61696c7d220a20207d0a7d0a0a7265736f757263652022636f6465725f617070222022636f64652d73657276657222207b0a20206167656e745f6964203d20636f6465725f6167656e742e6d61696e2e69640a202075726c2020202020203d2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202069636f6e20202020203d20222f69636f6e2f636f64652e737667220a0a20206865616c7468636865636b207b0a2020202075726c202020202020203d2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020696e74657276616c20203d20330a202020207468726573686f6c64203d2031300a20207d0a7d0a0a7265736f757263652022646f636b65725f766f6c756d65222022686f6d655f766f6c756d6522207b0a20206e616d65203d2022636f6465722d247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d2d247b646174612e636f6465725f776f726b73706163652e6d652e6e616d657d2d726f6f74220a7d0a0a7265736f757263652022646f636b65725f636f6e7461696e6572222022776f726b737061636522207b0a2020636f756e74203d20646174612e636f6465725f776f726b73706163652e6d652e73746172745f636f756e740a2020696d616765203d2022636f646572636f6d2f636f64652d7365727665723a6c6174657374220a2020232055736573206c6f776572282920746f2061766f696420446f636b6572207265737472696374696f6e206f6e20636f6e7461696e6572206e616d65732e0a20206e616d6520202020203d2022636f6465722d247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d2d247b6c6f77657228646174612e636f6465725f776f726b73706163652e6d652e6e616d65297d220a2020686f73746e616d65203d206c6f77657228646174612e636f6465725f776f726b73706163652e6d652e6e616d65290a2020646e732020202020203d205b22312e312e312e31225d0a202023205573652074686520646f636b6572206761746577617920696620746865206163636573732055524c206973203132372e302e302e310a2020656e747279706f696e74203d205b227368222c20222d63222c207265706c61636528636f6465725f6167656e742e6d61696e2e696e69745f7363726970742c20222f6c6f63616c686f73747c3132375c5c2e305c5c2e305c5c2e312f222c2022686f73742e646f636b65722e696e7465726e616c22295d0a2020656e7620202020202020203d205b22434f4445525f4147454e545f544f4b454e3d247b636f6465725f6167656e742e6d61696e2e746f6b656e7d225d0a2020686f7374207b0a20202020686f7374203d2022686f73742e646f636b65722e696e7465726e616c220a2020202069702020203d2022686f73742d67617465776179220a20207d0a2020766f6c756d6573207b0a20202020636f6e7461696e65725f70617468203d20222f686f6d652f636f6465722f220a20202020766f6c756d655f6e616d65202020203d20646f636b65725f766f6c756d652e686f6d655f766f6c756d652e6e616d650a20202020726561645f6f6e6c792020202020203d2066616c73650a20207d0a7d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000706172616d732e73616d706c652e79616d6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303030313030003134333330343437313532003031343036370020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d61660000000000000000000000000000000000000000000000000000000000303030303030300030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646f636b65725f686f73743a2022756e69783a2f2f2f7661722f72756e2f646f636b65722e736f636b220a646f636b65725f617263683a2022616d643634220a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') ON CONFLICT DO NOTHING; +INSERT INTO files VALUES ('5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', '2022-11-02 13:03:31.667863+02', '30095c71-380b-457a-8995-97b8ee6e5307', 'application/x-tar', '\x524541444d452e6d64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303031333636003134333330343437313532003031313733360020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d616600000000000000000000000000000000000000000000000000000000003030303030303000303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d2d2d0a6e616d653a20446576656c6f7020636f64652d73657276657220696e20446f636b65720a6465736372697074696f6e3a2052756e20636f64652d73657276657220696e206120446f636b657220646576656c6f706d656e7420656e7669726f6e6d656e740a746167733a205b6c6f63616c2c20646f636b65725d0a2d2d2d0a0a2320636f64652d73657276657220696e20446f636b65720a0a23232047657474696e6720737461727465640a0a52756e2060636f6465722074656d706c6174657320696e69746020616e642073656c65637420746869732074656d706c6174652e20466f6c6c6f772074686520696e737472756374696f6e732074686174206170706561722e0a0a232320537570706f7274656420506172616d65746572730a0a596f752063616e2063726561746520612066696c6520636f6e7461696e696e6720706172616d657465727320616e6420706173732074686520617267756d656e740a602d2d706172616d657465722d66696c656020746f2060636f6465722074656d706c6174657320637265617465602e0a5365652060706172616d732e73616d706c652e79616d6c6020666f72206d6f726520696e666f726d6174696f6e2e0a0a546869732074656d706c617465206861732074686520666f6c6c6f77696e6720707265646566696e656420706172616d65746572733a0a0a2d2060646f636b65725f686f7374603a205061746820746f20286f722061646472657373206f66292074686520446f636b657220736f636b65742e0a20203e20596f752063616e2064657465726d696e652074686520636f72726563742076616c756520666f7220746869732062792072756e6e696e670a20203e2060646f636b657220636f6e74657874206c73602e0a2d2060646f636b65725f61726368603a20417263686974656374757265206f662074686520686f73742072756e6e696e6720446f636b65722e0a2020546869732063616e2062652060616d643634602c206061726d3634602c206f72206061726d7637602e0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d61696e2e74660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303034323631003134333330343437313532003031313733330020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d616600000000000000000000000000000000000000000000000000000000003030303030303000303030303030300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007465727261666f726d207b0a202072657175697265645f70726f766964657273207b0a20202020636f646572203d207b0a202020202020736f7572636520203d2022636f6465722f636f646572220a20202020202076657273696f6e203d2022302e352e30220a202020207d0a20202020646f636b6572203d207b0a202020202020736f7572636520203d20226b7265757a7765726b65722f646f636b6572220a20202020202076657273696f6e203d20227e3e20322e32302e32220a202020207d0a20207d0a7d0a0a646174612022636f6465725f70726f766973696f6e65722220226d6522207b0a7d0a0a70726f76696465722022646f636b657222207b0a7d0a0a646174612022636f6465725f776f726b73706163652220226d6522207b0a7d0a0a7265736f757263652022636f6465725f6167656e742220226d61696e22207b0a20206172636820202020202020202020203d20646174612e636f6465725f70726f766973696f6e65722e6d652e617263680a20206f73202020202020202020202020203d20226c696e7578220a2020737461727475705f736372697074203d2022636f64652d736572766572202d2d61757468206e6f6e65220a0a20202320546865736520656e7669726f6e6d656e74207661726961626c657320616c6c6f7720796f7520746f206d616b652047697420636f6d6d6974732072696768742061776179206166746572206372656174696e6720610a20202320776f726b73706163652e204e6f7465207468617420746865792074616b6520707265636564656e6365206f76657220636f6e66696775726174696f6e20646566696e656420696e207e2f2e676974636f6e666967210a20202320596f752063616e2072656d6f7665207468697320626c6f636b20696620796f7527642070726566657220746f20636f6e66696775726520476974206d616e75616c6c79206f72207573696e670a20202320646f7466696c65732e202873656520646f63732f646f7466696c65732e6d64290a2020656e76203d207b0a202020204749545f415554484f525f4e414d4520202020203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d220a202020204749545f434f4d4d49545445525f4e414d4520203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d220a202020204749545f415554484f525f454d41494c202020203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65725f656d61696c7d220a202020204749545f434f4d4d49545445525f454d41494c203d2022247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65725f656d61696c7d220a20207d0a7d0a0a7265736f757263652022636f6465725f617070222022636f64652d73657276657222207b0a20206167656e745f6964203d20636f6465725f6167656e742e6d61696e2e69640a202075726c2020202020203d2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202069636f6e20202020203d20222f69636f6e2f636f64652e737667220a0a20206865616c7468636865636b207b0a2020202075726c202020202020203d2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020696e74657276616c20203d20330a202020207468726573686f6c64203d2031300a20207d0a7d0a0a7265736f757263652022646f636b65725f766f6c756d65222022686f6d655f766f6c756d6522207b0a20206e616d65203d2022636f6465722d247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d2d247b646174612e636f6465725f776f726b73706163652e6d652e6e616d657d2d726f6f74220a7d0a0a7265736f757263652022646f636b65725f636f6e7461696e6572222022776f726b737061636522207b0a2020636f756e74203d20646174612e636f6465725f776f726b73706163652e6d652e73746172745f636f756e740a2020696d616765203d2022636f646572636f6d2f636f64652d7365727665723a6c6174657374220a2020232055736573206c6f776572282920746f2061766f696420446f636b6572207265737472696374696f6e206f6e20636f6e7461696e6572206e616d65732e0a20206e616d6520202020203d2022636f6465722d247b646174612e636f6465725f776f726b73706163652e6d652e6f776e65727d2d247b6c6f77657228646174612e636f6465725f776f726b73706163652e6d652e6e616d65297d220a2020686f73746e616d65203d206c6f77657228646174612e636f6465725f776f726b73706163652e6d652e6e616d65290a2020646e732020202020203d205b22312e312e312e31225d0a202023205573652074686520646f636b6572206761746577617920696620746865206163636573732055524c206973203132372e302e302e310a2020656e747279706f696e74203d205b227368222c20222d63222c207265706c61636528636f6465725f6167656e742e6d61696e2e696e69745f7363726970742c20222f6c6f63616c686f73747c3132375c5c2e305c5c2e305c5c2e312f222c2022686f73742e646f636b65722e696e7465726e616c22295d0a2020656e7620202020202020203d205b22434f4445525f4147454e545f544f4b454e3d247b636f6465725f6167656e742e6d61696e2e746f6b656e7d225d0a2020686f7374207b0a20202020686f7374203d2022686f73742e646f636b65722e696e7465726e616c220a2020202069702020203d2022686f73742d67617465776179220a20207d0a2020766f6c756d6573207b0a20202020636f6e7461696e65725f70617468203d20222f686f6d652f636f6465722f220a20202020766f6c756d655f6e616d65202020203d20646f636b65725f766f6c756d652e686f6d655f766f6c756d652e6e616d650a20202020726561645f6f6e6c792020202020203d2066616c73650a20207d0a7d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000706172616d732e73616d706c652e79616d6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030303036343400303030313735300030303031373530003030303030303030313030003134333330343437313532003031343036370020300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075737461720030306d616600000000000000000000000000000000000000000000000000000000006d61660000000000000000000000000000000000000000000000000000000000303030303030300030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000646f636b65725f686f73743a2022756e69783a2f2f2f7661722f72756e2f646f636b65722e736f636b220a646f636b65725f617263683a2022616d643634220a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000') ON CONFLICT DO NOTHING; -- -- Data for Name: gitsshkeys; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.gitsshkeys VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', '2022-11-02 13:02:55.237442+02', '2022-11-02 13:02:55.237442+02', '-----BEGIN OPENSSH PRIVATE KEY----- +INSERT INTO gitsshkeys VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', '2022-11-02 13:02:55.237442+02', '2022-11-02 13:02:55.237442+02', '-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz c2gtZWQyNTUxOQAAACD3vPanWRzQc0b00kDF3Lj5tNU6zigkbI587uzMatB5lQAA AIiOWWpljllqZQAAAAtzc2gtZWQyNTUxOQAAACD3vPanWRzQc0b00kDF3Lj5tNU6 @@ -65,7 +65,7 @@ qPe89qdZHNBzRvTSQMXcuPm01TrOKCRsjnzu7Mxq0HmVAAAAAAECAwQF -----END OPENSSH PRIVATE KEY----- ', 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPe89qdZHNBzRvTSQMXcuPm01TrOKCRsjnzu7Mxq0HmV ') ON CONFLICT DO NOTHING; -INSERT INTO public.gitsshkeys VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', '2022-11-02 13:05:21.446353+02', '2022-11-02 13:07:03.586482+02', '-----BEGIN OPENSSH PRIVATE KEY----- +INSERT INTO gitsshkeys VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', '2022-11-02 13:05:21.446353+02', '2022-11-02 13:07:03.586482+02', '-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtz c2gtZWQyNTUxOQAAACCMB3az+6SAPpM1KJp5E/7lvpORrjnwUGdAkY+d7sMhXQAA AIgXCxlfFwsZXwAAAAtzc2gtZWQyNTUxOQAAACCMB3az+6SAPpM1KJp5E/7lvpOR @@ -86,32 +86,32 @@ rowHdrP7pIA+kzUomnkT/uW+k5GuOfBQZ0CRj53uwyFdAAAAAAECAwQF -- Data for Name: organizations; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.organizations VALUES ('bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', 'admin', '', '2022-11-02 13:02:55.136653+02', '2022-11-02 13:02:55.136653+02') ON CONFLICT DO NOTHING; +INSERT INTO organizations VALUES ('bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', 'admin', '', '2022-11-02 13:02:55.136653+02', '2022-11-02 13:02:55.136653+02') ON CONFLICT DO NOTHING; -- -- Data for Name: organization_members; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.organization_members VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:02:55.238286+02', '2022-11-02 13:02:55.238286+02', '{organization-admin:bb640d07-ca8a-4869-b6bc-ae61ebb2fda1}') ON CONFLICT DO NOTHING; -INSERT INTO public.organization_members VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; +INSERT INTO organization_members VALUES ('30095c71-380b-457a-8995-97b8ee6e5307', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:02:55.238286+02', '2022-11-02 13:02:55.238286+02', '{organization-admin:bb640d07-ca8a-4869-b6bc-ae61ebb2fda1}') ON CONFLICT DO NOTHING; +INSERT INTO organization_members VALUES ('0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; -- -- Data for Name: provisioner_jobs; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.provisioner_jobs VALUES ('424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:08.668806+02', '2022-11-02 13:06:03.928629+02', NULL, '2022-11-02 13:06:08.659881+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "a7477610-c69b-46d6-97fb-d6a3425e1ab4"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.763412+02', '2022-11-02 13:09:54.75528+02', '2022-11-02 13:09:51.92866+02', NULL, '2022-11-02 13:09:54.750397+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "b56215f2-3b5e-406a-ac54-41c284dc9af3"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('d6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.223922+02', '2022-11-02 13:04:58.770357+02', '2022-11-02 13:04:55.428757+02', NULL, '2022-11-02 13:04:58.762854+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "c1d2c9d5-6f30-4cd0-9ac5-6bf1c6039988"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.135318+02', '2022-11-02 13:08:10.808446+02', '2022-11-02 13:08:07.428275+02', NULL, '2022-11-02 13:08:10.801894+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "cd6fe03b-d6cf-4d5d-a448-cef52c3ddea2"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.072314+02', '2022-11-02 13:04:51.51136+02', '2022-11-02 13:04:48.428806+02', NULL, '2022-11-02 13:04:51.504973+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "ea36844d-8eb6-41a2-a237-e9a8ae3f99ea"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.675595+02', '2022-11-02 13:03:45.057747+02', '2022-11-02 13:03:31.928784+02', NULL, '2022-11-02 13:03:45.055613+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_import', '{}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:22.830929+02', '2022-11-02 13:04:19.428129+02', NULL, '2022-11-02 13:04:22.821799+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "a8c0b8c5-c9a8-4f33-93a4-8142e6858244"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.3012+02', '2022-11-02 13:04:14.077613+02', '2022-11-02 13:04:11.428743+02', NULL, '2022-11-02 13:04:14.075961+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_dry_run', '{"workspace_name": "my-workspace", "parameter_values": [], "template_version_id": "920baba5-4c64-4686-8b7d-d1bef5683eae"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:43.884672+02', '2022-11-02 13:05:40.428424+02', NULL, '2022-11-02 13:05:43.877519+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "c7c0a371-db1e-4f10-ab34-6779f573554c"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.489029+02', '2022-11-02 13:07:57.535327+02', '2022-11-02 13:07:52.928569+02', NULL, '2022-11-02 13:07:57.53319+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_import', '{}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_jobs VALUES ('d842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.103996+02', '2022-11-02 13:10:45.613609+02', '2022-11-02 13:10:42.428688+02', NULL, '2022-11-02 13:10:45.606436+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "2bfa1945-e81f-44e4-8f41-394200f6cb30"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:08.668806+02', '2022-11-02 13:06:03.928629+02', NULL, '2022-11-02 13:06:08.659881+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "a7477610-c69b-46d6-97fb-d6a3425e1ab4"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.763412+02', '2022-11-02 13:09:54.75528+02', '2022-11-02 13:09:51.92866+02', NULL, '2022-11-02 13:09:54.750397+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "b56215f2-3b5e-406a-ac54-41c284dc9af3"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('d6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.223922+02', '2022-11-02 13:04:58.770357+02', '2022-11-02 13:04:55.428757+02', NULL, '2022-11-02 13:04:58.762854+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "c1d2c9d5-6f30-4cd0-9ac5-6bf1c6039988"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.135318+02', '2022-11-02 13:08:10.808446+02', '2022-11-02 13:08:07.428275+02', NULL, '2022-11-02 13:08:10.801894+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "cd6fe03b-d6cf-4d5d-a448-cef52c3ddea2"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.072314+02', '2022-11-02 13:04:51.51136+02', '2022-11-02 13:04:48.428806+02', NULL, '2022-11-02 13:04:51.504973+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "ea36844d-8eb6-41a2-a237-e9a8ae3f99ea"}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.675595+02', '2022-11-02 13:03:45.057747+02', '2022-11-02 13:03:31.928784+02', NULL, '2022-11-02 13:03:45.055613+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_import', '{}', '22c3662c-60eb-408b-99e1-85b447c2b7e5') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:22.830929+02', '2022-11-02 13:04:19.428129+02', NULL, '2022-11-02 13:04:22.821799+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "a8c0b8c5-c9a8-4f33-93a4-8142e6858244"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.3012+02', '2022-11-02 13:04:14.077613+02', '2022-11-02 13:04:11.428743+02', NULL, '2022-11-02 13:04:14.075961+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_dry_run', '{"workspace_name": "my-workspace", "parameter_values": [], "template_version_id": "920baba5-4c64-4686-8b7d-d1bef5683eae"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:43.884672+02', '2022-11-02 13:05:40.428424+02', NULL, '2022-11-02 13:05:43.877519+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "c7c0a371-db1e-4f10-ab34-6779f573554c"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.489029+02', '2022-11-02 13:07:57.535327+02', '2022-11-02 13:07:52.928569+02', NULL, '2022-11-02 13:07:57.53319+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'template_version_import', '{}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_jobs VALUES ('d842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.103996+02', '2022-11-02 13:10:45.613609+02', '2022-11-02 13:10:42.428688+02', NULL, '2022-11-02 13:10:45.606436+02', NULL, 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '30095c71-380b-457a-8995-97b8ee6e5307', 'terraform', 'file', '5cedf49ccf841e2d6a7f84e18c86f38aad8b50495c032d19226118b91addf196', 'workspace_build', '{"dry_run": false, "workspace_build_id": "2bfa1945-e81f-44e4-8f41-394200f6cb30"}', 'e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37') ON CONFLICT DO NOTHING; -- @@ -130,643 +130,643 @@ INSERT INTO public.provisioner_jobs VALUES ('d842dc52-93b9-46ed-842d-d1569b50ddf -- Data for Name: provisioner_daemons; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.provisioner_daemons VALUES ('22c3662c-60eb-408b-99e1-85b447c2b7e5', '2022-11-02 13:02:32.925313+02', NULL, 'gallant_mahavira7', '{echo,terraform}') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_daemons VALUES ('e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37', '2022-11-02 13:02:32.92604+02', NULL, 'brave_borg8', '{echo,terraform}') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_daemons VALUES ('315adce9-adc9-407c-9ff7-905c1c71d020', '2022-11-02 13:02:32.926164+02', NULL, 'lucid_lederberg6', '{echo,terraform}') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_daemons VALUES ('a6246fc1-23f3-4206-ad2d-ff6f85b017b4', '2022-11-02 13:10:56.115722+02', NULL, 'trusting_lamport1', '{echo,terraform}') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_daemons VALUES ('fc5728a8-e0f9-47a8-a00e-31943fc46b29', '2022-11-02 13:10:56.121368+02', NULL, 'wizardly_lumiere8', '{echo,terraform}') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_daemons VALUES ('0a6664b4-07a8-461c-9275-637b1da715bb', '2022-11-02 13:10:56.123247+02', NULL, 'eager_einstein5', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('22c3662c-60eb-408b-99e1-85b447c2b7e5', '2022-11-02 13:02:32.925313+02', NULL, 'gallant_mahavira7', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('e70c7dd0-bba3-4ab8-bfe1-f75e42c67e37', '2022-11-02 13:02:32.92604+02', NULL, 'brave_borg8', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('315adce9-adc9-407c-9ff7-905c1c71d020', '2022-11-02 13:02:32.926164+02', NULL, 'lucid_lederberg6', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('a6246fc1-23f3-4206-ad2d-ff6f85b017b4', '2022-11-02 13:10:56.115722+02', NULL, 'trusting_lamport1', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('fc5728a8-e0f9-47a8-a00e-31943fc46b29', '2022-11-02 13:10:56.121368+02', NULL, 'wizardly_lumiere8', '{echo,terraform}') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_daemons VALUES ('0a6664b4-07a8-461c-9275-637b1da715bb', '2022-11-02 13:10:56.123247+02', NULL, 'eager_einstein5', '{echo,terraform}') ON CONFLICT DO NOTHING; -- -- Data for Name: provisioner_job_logs; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.provisioner_job_logs VALUES ('d09b6083-e482-41ac-ad06-3aa731ec4fc6', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.936+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fe61a03b-d5b2-4ba4-a437-253ea724d149', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.943+02', 'provisioner_daemon', 'info', 'Adding README.md...', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1badda17-67b2-4795-9351-6a2cee04c22a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.949+02', 'provisioner_daemon', 'info', 'Parse parameters', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('80b05e59-1fdb-48cf-99ed-27ed0aba8ecc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.956+02', 'provisioner_daemon', 'info', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4a5c2ec6-c2e2-4136-9423-14cdff1d6f13', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.046+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7da3c668-9812-47b7-9d22-43138800a307', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.05+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2f752172-65f0-4a43-9378-c5d0997eca76', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.054+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f6c293ae-a496-40c2-ab8e-b7d64aca4bdb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.057+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('15948e16-e69b-47c2-821e-6c0b375dccd8', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.059+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('62d872e4-9a8c-4cc5-9f21-083bfcb6a03c', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.28+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bce64698-1b64-4ef6-94b7-b5fd071b31e8', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:33.826+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installing coder/coder v0.5.0...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('35c436dd-3beb-4c5d-9f8a-16198d2fbcb7', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:36.186+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installed coder/coder v0.5.0 (self-signed, key ID 93C75807601AA0EC)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aa80ec91-8b8f-4268-88a4-111e5b368bf9', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:37.718+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installing kreuzwerker/docker v2.20.3...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e322b727-fddf-4d31-b0ad-fe9fb0532586', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.978+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installed kreuzwerker/docker v2.20.3 (self-signed, key ID BD080C4571C6104C)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('26cac587-a5c7-4691-bab4-0fa1436724c3', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.984+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b192bac6-94a0-4e89-8d88-eba6c1028abe', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.988+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Partner and community providers are signed by their developers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('57162911-66a9-4597-a289-643724057e2d', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.992+02', 'provisioner', 'debug', 'Detecting persistent resources', 'If you''d like to know more about provider signing, you can read about it here:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('19227832-c872-4d8d-b610-c649da56984e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.996+02', 'provisioner', 'debug', 'Detecting persistent resources', 'https://www.terraform.io/docs/cli/plugins/signing.html') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dce2aa32-5dbd-4c04-af85-c7ef585dca6a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6e220907-0654-46dc-bb56-212153032d5e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.003+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8da2943d-7295-43a6-b560-e946c127b0a0', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.006+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('79b02372-6db4-4cd6-8c69-c94e9ef2fb5b', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.009+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4b810053-fde0-4579-b2fa-f3a80d9f3f5f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.012+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('76a7934d-b410-4ccc-a57e-1329aefe0203', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.015+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('133aa0b6-4da8-48e4-9428-62f6b7635510', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.018+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a0ed73d5-e07a-4b3a-8046-8fdaefc1dacb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.027+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8b67db19-e012-461d-a538-d1dea4f91ef4', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.781+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('60637ec5-5231-4407-b62d-13e44074eb7f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.784+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c3ed554e-b395-4adf-8642-f7596a71c4cc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.787+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=20990c34-2afd-4e54-bfa3-9b7e5beea09e]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8b988379-c1e4-442b-9232-65fd926eecff', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.791+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=fc8ca501-3820-427d-92c5-d8ca4fd45362]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9a4e58db-512e-42db-9349-29ebef3c750f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.816+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('45f82833-a53c-49ca-be8e-1545917d7062', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.82+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5c0eb2ac-825d-4ad8-bed8-63d59266030e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.823+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9fd0dc4c-e75d-47ac-9676-2e4182da7edd', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.826+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b9a391a5-117f-45e0-9a2c-89b13c32d201', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.829+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7470c318-e457-4b2c-b61d-4fbab6f84fc3', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.617+02', 'provisioner_daemon', 'info', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('975d23d1-aa43-4efc-b533-55a07e8cc3bf', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.705+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f4cad918-2fb0-46a2-b64a-daa899b659fe', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.708+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dc6331d7-41a8-4f65-8a89-da54638b5aa0', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.846+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ca307075-af47-4fa5-9d3b-4744acc7a0ac', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.851+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('61df6634-b81b-4fde-b7cb-13ed3f97b210', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.855+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of coder/coder from the dependency lock file') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9f227da4-3fa0-4d7d-a65e-38ccf06bba2f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.06+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of kreuzwerker/docker from the dependency lock file') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e79c1b3c-5db1-48fd-ac61-3fb667e3fc97', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.319+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed coder/coder v0.5.0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('28ec8811-7aaa-460c-b6e2-a9b85eb46b4b', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.405+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed kreuzwerker/docker v2.20.3') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cef26c13-8a06-4ae6-946f-216db5cc0996', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.411+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fe2bc9eb-b7ea-4d20-8d7a-b2be1d3c450a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.415+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d49391ed-7b60-459e-8fe5-4dd4783f6629', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.45+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('25f8cf7f-4cee-4891-9f14-4e32002e6661', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.179+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ca6ad386-5647-49e3-9b05-0f4cdfd35b01', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.184+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aece424c-595e-4ad8-a1cc-0938d037a3cb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.187+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=ccf0bb8b-fca5-408f-b4a6-93434185c25a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f345b9bd-429e-468f-aea4-8c11709991da', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.19+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refresh complete after 0s [id=5e7ca627-de78-4542-a964-acda3f038ced]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('31b0cf2d-4a8b-4860-86d7-ec9fc5e58abc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.208+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('602d137a-eaad-4b34-9a5a-e2169adf1b17', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.212+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d5cc54cf-0390-4fa7-9ff5-3bcd15cbe351', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.216+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a2f6c1a8-05ff-45a8-ac0e-490f7dc0b7b1', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:45.056+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2dbe9812-907b-4344-b602-14c680fd460c', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.222+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Plan: 3 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('377e167e-4133-40d8-b62b-e33369c5ed55', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.437+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6d970dad-4051-42d8-847c-07320fb9b110', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.525+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('501f4bab-6eb3-4278-9192-7ae725943418', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.528+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('80e17591-51fe-4fda-aa90-18caa59d1b7d', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.533+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bdd4192d-9f9d-4300-8b4e-f1f12a8479a8', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.536+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b46e6002-1277-4d2b-88a6-97f2f250766e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.542+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b251b96c-368b-4be2-982e-621372dd1f0e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.072+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('294bdb11-4229-46a0-a926-34590373e945', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.155+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('70eab552-5fe7-491a-a275-22059e959ccb', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.212+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c32727e1-ca44-405a-9419-038107c4bc96', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.285+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9e3ae09c-09bc-4a27-b271-9446198fb60e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.293+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9d2d3770-f969-4796-9d65-6cc903593d52', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.299+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4fdc748e-938c-4809-9125-caae1c44fd74', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.302+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('57b70064-827e-4763-b8a0-473f99797b48', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.306+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('781a7128-f401-48e3-a752-4f5d3c636ead', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.309+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('71dbe7ee-7537-4cf3-8f33-8c309ebe8b7e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.313+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('360f1a19-7904-440a-a539-6f035169d093', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.317+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('df6ba6d2-fada-4b68-a8a6-978fdc7b55e2', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.32+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bfc96ab3-fa05-416f-b21e-c58a3ab123f2', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.323+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('44a12cb2-da79-469f-b971-c4bf32fe406e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.327+02', 'provisioner', 'debug', 'Detecting persistent resources', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('299f3930-0423-4e75-ae4a-526e37f481c5', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.33+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6bffd24-8365-4a00-98ed-1e1f978aca49', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.333+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0422f763-da4f-4552-9562-144927bec94d', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.336+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aab83530-7dcd-49bd-b981-5c29cd9674d3', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.339+02', 'provisioner', 'debug', 'Detecting persistent resources', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3089607c-329c-4ee7-88dc-e9f48318e52f', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.342+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a20e18c7-daa9-4e40-9ed9-9c11a2ccf5b1', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.346+02', 'provisioner', 'debug', 'Detecting persistent resources', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('582dbda6-f79c-43d5-b215-2da3b13bd406', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.351+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6cf795f-35e7-45ee-98d0-8be04d7ad6fe', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.356+02', 'provisioner', 'debug', 'Detecting persistent resources', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f36be7f7-a6c2-40d1-9722-ae8e4d920a08', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.359+02', 'provisioner', 'debug', 'Detecting persistent resources', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3c03dd84-79e1-4abf-9900-05613cc82664', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.363+02', 'provisioner', 'debug', 'Detecting persistent resources', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4cbcab55-cb60-4982-90f7-be05ffac7566', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.366+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3d553c50-de3b-4770-8bed-2792c6981362', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.369+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1137030a-bfda-4391-8b17-6a1c1a5e2749', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.373+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bc462919-aa4b-452c-b945-35965cf138c5', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.157+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c76057c5-2191-4336-b7fb-f104d3c4054b', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.162+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5a1771fc-0028-4edb-9bdb-86dcd4c58687', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.165+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=13dbb32a-5197-458d-8092-6f00a7df5d19]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f29c2e5d-3392-43c3-ae80-1deeea71f11a', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.169+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=2ab63b5c-7d85-43db-ae90-cdcdd27ca4d6]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f3eb65ac-2be8-4b88-9bb8-618bfd70561b', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.201+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('739ec94c-4700-4562-80f7-7f254aa8b129', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.205+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f01666b7-4de4-451f-8710-8aa63d32aa8e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.209+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('556f3f57-5a46-49da-aac4-66ed5d101e7f', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.213+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('55d5e4f7-e80a-4622-9168-7e412651b91e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.216+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('664fe6c8-1fec-410c-93d8-385e8b65e7d4', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:14.076+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1af37305-2e9f-445d-b3fb-dea1dece403b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.436+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5da10ab9-a23c-44ea-98bb-865dc706eae2', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.44+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7d8d1b95-2660-4724-a2e5-8c0439eff2e7', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.534+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('89f7bb3f-c495-4567-a188-25c5b41f6e5d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.538+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('050649c2-fa47-407a-b871-b9f9a8a48b49', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.543+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7d7e19cb-238c-4293-a488-5f61fe83d9d9', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.548+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('daf99de4-753e-4a40-a412-385a97ffe655', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.551+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b10105f1-a4ca-473e-a33d-a6755709ac7d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.776+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d974959e-0c77-4c38-8302-dbdea5f8b702', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.966+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3d0f0030-8fdb-4193-9f71-e7648c0b00ca', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.023+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5e93f614-bd73-4fd7-bf0d-85c61e8294dd', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.095+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('160b7134-0cd1-4c28-b05a-ac7fa6d5d05e', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.098+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7b4b1ca6-fe48-4f1b-bd9b-b6ab54b3cccd', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.086+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8a234d62-5d70-450d-ae9e-fd46186a7717', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.102+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3872d0e7-f5fd-45f9-9027-ec41eacdbc8f', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.106+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('02eb7d16-8513-4ac8-af9b-bd096faccbe0', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.109+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('afefbc98-b47e-4c32-99cc-a2cbe7066d43', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.112+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('785eef1d-66ce-406e-bf12-5e2e95ffdf4a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.115+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cb782ff3-5ef8-4312-9431-8a44aed28d9d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.118+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('02003fe3-ac96-4cdc-8683-5042aff7ad81', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.122+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2f203901-94d5-4e9d-8988-d06224e9fa0b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.125+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9d53f365-961a-43df-8a0e-b974649183aa', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.129+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3dd1ed46-1de4-4362-bfff-784182b44471', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.132+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c03469d0-08a9-4378-b538-50d6d1d50c79', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.135+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c6166453-3033-4d69-a5f0-4856776c76e4', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.138+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fa7a0d2f-1bd2-46e9-9f25-8bd45860dd98', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.141+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a1fd6072-dde6-420c-bf8e-9ebc4d537866', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.145+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cae1268e-b797-4e97-83cb-95ff016a5a63', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.147+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('938f0d99-4dc6-42a1-b6b9-c9e70b450cd5', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.15+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3d9d2115-f6ea-40c2-9f56-5075cada0c34', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.152+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('46e2af39-78f2-4a37-824a-0b4f2dc54764', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.157+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1ae80356-6b65-4ff6-8230-7cab8a8cfaf9', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.161+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('386b59ce-c30e-4f7d-addc-178e223b1d87', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.164+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b18f40d1-f649-4f34-b332-feb6690482da', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.168+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0747c356-f2ea-49ab-b7ba-292ed9abff7a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.171+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('da54beff-b031-436d-93f0-67f2ff53be96', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.94+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('78007aad-5614-4d0e-9fa9-ae1307b6240f', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.946+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3159380d-141a-4d2c-9a69-cbc90c5fe71b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.951+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6e6a0df4-feb4-4339-87ce-ccf48ff873db', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.956+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=17cc17af-8bbb-4761-ad39-da62ad512c23]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('88cae505-15e1-4ca8-bcf7-8bd1c3af8030', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.975+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('463ef456-2b86-4c67-bc2b-23079a793142', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.979+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e29a0563-0299-42df-8f3e-38fdb851d743', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.982+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e0756af8-2cce-4246-a589-a4741eee2359', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.985+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7e6f0608-02b9-4523-bdef-5a8cdf63d65b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.987+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1fb337be-0749-4e98-8513-62164696b42e', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.166+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6d785a3a-7864-4cbf-9612-af13c4347f66', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.172+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9e3f0f0d-3269-48c8-aa1c-f633360809cc', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.185+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d6bc2b50-2e74-414a-bf13-a43189e86abb', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.192+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0e090bdb-12b2-4959-9230-9b014af2b7ca', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.195+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4bfa811d-9368-4548-be3e-3f7884d2ba5d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.198+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('00ef0ca8-439c-4b3f-94a4-cd086d15e9d2', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.21+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('53d6c9b1-8d43-4f0d-963b-8967ee2a3409', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.74+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f29082e9-aad2-46f9-8d4a-bacf3d3618dd', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.749+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6a3690dc-6e1f-400b-b47f-af64bd007a55', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.755+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('473429ac-5ede-48cd-b754-9b3e498aa60c', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:22.83+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f5303749-4d64-4f3d-ac0e-81e629355e86', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0812fe54-1b04-4b52-9f43-049fa80467e8', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.444+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('31f9020f-3378-4209-a421-7399c86ea76d', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.54+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1110403f-1865-4dca-97a7-4ecb14a97134', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.545+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('955f1a84-1718-4aa7-8022-3ea41d2ba1ba', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.549+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ea27eb37-4934-4bad-bbeb-8a7f0bec0498', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.553+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3525b9d7-69c2-4537-9f47-6290966b4f3d', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.555+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0b83bb69-0b72-4e11-8c13-2b68b90217a9', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.832+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bff36240-532f-44d0-ae0f-2c2faa22ebf3', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.941+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('755ab7f1-8af7-4e73-bdf4-e7d42250f102', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.997+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('41af9b10-8823-40ef-9acc-0c7c0aac73aa', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.066+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4eb9c01c-e77c-4509-b1d3-f394383e00dc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.072+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6baa0b42-517a-4154-804f-50b900a17cb0', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.077+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5ed6a9d9-ce78-41f2-850b-c54354ba85fc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.081+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f674b8d8-1aca-475d-84d1-74e68caad7c2', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.084+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bf8e0403-bc1f-4200-93cd-d459c5d4eea5', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.089+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2a26f80a-f534-4a57-8f60-61b0245b2a28', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.092+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d687a831-e9cf-47f7-8fee-2b971e07110e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.095+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5f1ea8a9-583f-4613-9cf9-2ae1dada1013', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.098+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('63a97f16-df0c-4064-abb1-fa94edff116b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.1+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0659c1b7-ba0a-4153-a121-1b707d6dba43', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.103+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5026c663-c180-4880-b27e-831ea7b915e6', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.106+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('11bc6add-90ee-4ef1-8270-2c4b75149666', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.108+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a4ed025f-5228-40fd-97dc-3f581423760c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.11+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f87eb959-7fa4-4574-b57f-0d25eddb5780', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.113+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('190ce772-4a3e-48d1-82fc-6d2c4406376b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.115+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('807aa93f-0413-4158-9706-aad0f2bd3472', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.118+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('224ba0e5-1c27-44d9-8dd9-d04843eed695', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.12+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('744e3d76-8b8d-40c2-a3d3-2b2707720a2b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.123+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('53594c81-a9e6-4ab3-babd-5491157c4de1', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.13+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('86f24df0-9053-4aee-a55e-39186d23dd9c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.133+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('710b2445-edfe-4b38-956f-f3ee83affebc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.136+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8e29a006-dbbc-4cc2-8856-70aaddc70627', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.139+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bbf4cec8-2edc-47e1-9f18-71c0d0f3229e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.88+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ad23bec6-86a9-4831-9adc-3ee4d979e49c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.887+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0a0c2ddc-94f4-4d9a-a403-c0229939ad38', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.89+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=69d8c247-a4cc-4de6-86c0-ce073255316a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('992e7b85-8c39-4c79-82c8-d9e616baf3b3', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.894+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5abaec85-0b9a-49a0-a547-e40f68123865', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.898+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('927353ca-a7f2-4604-b7a2-0b1e3c5bd1da', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.902+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('94933b2b-bf01-45c8-a0e9-6c82700cd4d4', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.91+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5b8fcf47-22e5-4ced-a3b7-aaaef79f8452', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.913+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2c9cb430-1dc6-4896-a0c8-469947399523', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.917+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9cbe3787-1861-4007-8803-f071482fa2fa', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.921+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d8b2a8a8-c653-412e-a70d-dc65a14c2af6', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.925+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6b22e12c-75e1-4f5a-a571-add29e687bd8', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.043+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('db7d2cd9-0331-4e1c-9ae2-0cc18cfb1d5e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.057+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('71455c3a-c6ec-472c-9b6e-e174697c3e93', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.061+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5580b627-218d-43eb-b619-b269c796b158', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.066+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9499f481-527c-46a8-9a9f-f84ab5caf603', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.069+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c245b280-6683-4aea-ab6b-55dd8ccc02dd', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.073+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0aa11a57-2d0c-40f9-84e2-793d47db516f', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.174+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('354d0fe5-252d-49eb-a432-3672bd77f421', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.472+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e4cf8c6b-2e24-4db8-bb71-d57c5c88157b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.485+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('651e7bf8-eeb1-41fc-acca-d00036fd1dbe', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.49+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('15a9676b-718b-4461-9e62-81fbd550a897', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:51.51+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('109203b0-c680-45fe-b470-ab383e7322f7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.438+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('25618f60-4596-4bb5-9ba4-daa75e885289', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.442+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('53042802-9b70-4933-91ab-b2c0bc444693', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.545+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c9ad724a-5481-44f7-b8a1-b450dc5051f6', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.549+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('71bc590a-a0e5-4268-89a7-d6178304d91c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.552+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aa7529a0-8020-4268-a106-bfa9d7b8db45', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.555+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4ebfc500-c4ff-4247-a4e8-14e6814d9fac', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.557+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('541853de-e473-486d-b6e1-3b6e78518788', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.82+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2778a009-7045-4773-beb6-4fb7ca574116', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.993+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ed060a03-3f5a-4695-97e3-22d7deab8d38', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.053+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3564ae4e-b903-4431-96d9-17d7bac188f7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.128+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('683bd5c5-0397-4d70-8e5f-7d5995f1f38a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.136+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('55d3ea8e-5bc0-4aac-aa19-4d4c74146503', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.14+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cbff931a-8b68-4dfa-83a2-40809e7add5d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.143+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3fff2b02-6fc5-421d-8c2a-1ab8ffbc9fcc', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.146+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9ac3b08f-bb36-4e21-828f-4ae47d2b9719', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.149+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('74d08fc2-27a1-403b-85f8-24ec862dd288', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.152+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d2511df7-1992-4c8d-b5ca-bb60bc638ce4', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.156+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('681814dc-5855-4e4b-8907-c9de0d29b119', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.16+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bbbb300a-9a20-4e88-8f12-4de90b82594e', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.163+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8bc2492b-fd16-4098-92e9-7d8ece563d3d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.166+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dcdf65fb-c226-4554-8fec-edbb04f1414e', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.17+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8820392e-9d9e-4988-9623-ee1af0059d11', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.173+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9c64a617-539b-4e57-a750-355c66cf15cb', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.176+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bffd2b77-7f42-4aef-ac19-586998a6f614', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.179+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d7fcb4d1-6c30-4777-83c6-015b0f48a970', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.182+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cdcb62d9-f347-4654-b5b2-28fd6960a509', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.185+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('95ea3beb-90e7-4787-901c-f570df3bd801', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.188+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9797523c-35ee-4ed3-a69f-af357fafc42c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.19+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bb8189ba-82a1-48f1-bf1c-e000659f8697', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.193+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7d86f4fa-e8e9-42f7-b1f6-f27822c67292', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.195+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('17e19806-b748-4837-9166-0bcae6592ffe', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.198+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('07392a8e-31b3-4e7d-ade1-a09d4c2ee2b6', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.2+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('524bf497-10f8-41d3-960d-ed67df4fa9ec', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.204+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('326c0c94-5c0a-45f8-8a26-1e8639553502', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.954+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8a6b7cd1-f0f5-4972-9364-cdc5eeb61f0c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.958+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('61b04b23-eca5-4c15-91bb-bb88f00a2021', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.962+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=b65a767f-719a-4883-a186-aeb1ac05cb25]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('73e70e26-c6b7-4d8e-a9cc-1acc06022279', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.967+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('74683648-d94f-4d9e-9e6d-bf5fc05fd706', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.972+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refreshing state... [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0c241c2a-7607-438c-8af2-c3641959f485', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.976+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('944880c1-ef75-45b8-a60f-f17800a83023', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.979+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refresh complete [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7a466591-e523-4fe0-9df3-564a35161f49', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.982+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refresh complete [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c4e5c961-e812-40e3-b0a4-bc5bb781751d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.986+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refreshing state... [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0b2bdd2e-4c9f-4514-8f42-0650a0be805a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.989+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refresh complete [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d3b5a8c6-f038-4147-a074-4603945ed27b', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.997+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4f2c80f8-d06b-4670-976e-3b58b5f8200d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.002+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('755914cd-d41e-447e-9343-284fe4c0a9a5', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.006+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 1 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dc059e5c-18aa-4d95-b50d-9861ee068be7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.229+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ccbb8238-0a62-4d0d-8269-3709ce02f47a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.964+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e8fd1570-dfb7-4bdf-9d13-fd1dbf3cb124', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.967+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('76167fa7-9670-430f-9536-176cdc4a9f5c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.97+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9d1e67b3-6bd8-435e-96b5-c7b012b42604', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.972+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4a8a8443-c6cf-435d-8527-1a782b74b838', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.975+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('45c669a4-88fd-47f0-98a3-e0875d352d7a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.16+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c48882a8-d865-44ee-b8d0-6fa60a255848', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.165+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dda5b5fe-027d-402a-8852-a4ce2bfe4d71', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.17+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ea5f28e9-38b6-4d6a-8ffb-9e48657632ea', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.174+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('53224434-ead2-4aa3-8c86-177bc4c8fc3b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.181+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('71ddfedf-d129-495e-bb80-ecf16f789be0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.186+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f2f59832-212f-466c-92f3-ede2f34fc731', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.189+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b10e5078-18f2-4ccc-875f-134d5724667a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.857+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('566e4cb4-2828-43f1-af4c-5797a7fd3504', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.868+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ad17b455-6adc-4f4a-851e-c8fa568c20c7', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.871+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bfe7a100-7f42-471f-a210-b687bda0fc24', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.739+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=db4aecde657b126939e8bad412b953314cd1316fe7b3f3d061203d0a71e037e8]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e896bbfe-86a0-4f7b-bf6e-4b848d945cbf', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.743+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 1 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('250130a2-19fd-4cce-874f-c74d55aa2f14', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.748+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('91616345-1c98-40ba-a4d3-23514865abb8', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:58.769+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('35036434-b0d7-4d8b-9b2e-2a55fb045bd7', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('80f1e6fd-8e57-46a9-bcc0-436d9ff34cc2', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.444+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d4aa27c1-8b51-455f-ad37-ef3031e9959d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.535+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ef4ffdad-1b7c-42e9-9ca4-03a878e8efce', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.54+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('caae1027-94c4-4ce9-a58a-c7629632c763', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.545+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1d890d4d-1b83-4cbc-b4b9-904150e970ae', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.549+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ebe2cf5f-bd32-44e9-95a2-e92fd68e51f4', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.552+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('849e5476-f4d6-42aa-9331-a80a27a12107', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.916+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0c142d37-a1d7-4ba1-b3e3-a2544952099a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.984+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0654054e-9f59-40b2-b899-0b8a8ec3f33a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.044+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('edc50f19-4bbe-46bf-8f13-292384708095', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.114+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ce618bdf-d2b0-4857-98d4-842d33f0154b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.12+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('794ea457-7da4-42c0-a960-bf0895541c9c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.124+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('47d5a9e6-4b36-4129-a746-5611767673cb', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.128+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b23c35f8-a06c-4716-9d6d-1ab79dda11bf', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.131+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('75fc0daa-c636-49da-b635-09bb34b69a20', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.134+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('56702227-afc1-4413-a939-36f521e80d4b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.137+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('becc9242-efa6-4ed9-a69e-8f4c589529d0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.141+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('37205ac5-6eb1-4773-9def-cfd48cb8ce11', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.146+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b85b9b97-4fad-442f-8662-af1660d73f3f', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.15+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('80c19b36-2754-4b72-9b5e-59518b293241', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.153+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2dc14d18-0cac-4a18-b7c1-1f3b858db5a3', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.156+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d0d6d612-755f-418b-8c2c-d3509a42abd0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.159+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1f466eae-c2b8-4942-a189-07d80f8cd34c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.162+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cf37bd97-4ae3-404b-8f0a-94a7f2bf9af1', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.165+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8000ff14-2939-472d-ae75-ff323d5c02df', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.168+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('116ed6f5-9486-45c8-a460-de9491854550', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.171+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3e3ba08f-2010-4e24-bbc9-97a0f17ccae5', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.174+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0ebddff5-9fdf-4026-885e-5bfbe81cf837', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.177+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1e283699-cc08-47c6-accc-69c1d1579540', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.179+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('08c60987-9653-4c60-8d72-60c930581bac', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.182+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ad734b46-eb2b-4566-b2d2-b8f5c6a65192', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.185+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ea094a42-52ef-4974-a81d-db49d6dca17a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.188+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d962bb9b-9ffc-4131-b9e2-4b540a025d20', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.191+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8edcc52f-4242-4c78-b375-eb343d439e2d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.916+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('33f37088-1e7c-4cfb-b150-5d5e735f6da5', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.924+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('123192aa-9f05-4924-b724-c44928a6034d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.928+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=fe418e81-b8a0-4f69-87ea-a0a597745e29]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('15a7ed53-89f0-43da-af80-9b95649e0697', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.931+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3109c750-9158-463e-b1c6-7e8a9d562a54', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:43.883+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('451eda7a-d6a8-464c-893e-78796ef328bd', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.941+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6cd03ef3-ca74-4898-b014-3823feef5014', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.945+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('be374e41-cf6f-493b-a799-e2f548f940f5', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.047+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('351f9dbc-1936-4890-b145-d1644c4a346a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.05+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('040204a2-cdf4-4ee1-9704-7c8ec1fa0374', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.053+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('09c75767-3d08-4673-b4f6-eca8fac2058f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.056+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c986858c-c26e-49ea-a011-38e07510dc51', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.059+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1e352ba9-9fda-4a5e-9bc6-38baac1ac124', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.453+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('778be809-e832-4518-b63c-b4d4ea9bb24f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.62+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d2302004-ed2b-4071-bec5-ce9f16446aaa', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.695+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4055c54c-f128-46a1-86f9-ccec28d9cb9f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.75+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('05cdffde-f37a-4899-97ad-b3954c99fe20', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.754+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('20215593-28a0-4a44-8d23-f990171d6e25', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.758+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('74c22124-ad8c-4c8b-9c38-e074c0a6690b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.761+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f5df23a6-6461-4b64-bb02-16b4c8a8558c', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.764+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('89564128-9d95-4dbf-bfc9-3e0a3e080f6a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.766+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e9c32ce3-71f1-4b4c-a269-c8f26b70d2cf', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.769+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9ea0b406-aed4-4dde-978d-0aa184d905ab', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.772+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e2c45f9e-f037-41fc-b1a0-3415309a4bc7', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.775+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e70b1f1f-a226-481b-99a7-84ea9df1aeee', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.778+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f2724cf1-bbda-40ba-825f-64333171092f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.78+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4727c32b-90e1-4d27-9c52-e782f00aec3c', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.783+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('56d15d39-2f3a-4128-9462-109a7c35d3e4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.785+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d2837d78-e7d6-4c6e-a7cf-4083f774a060', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.79+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fd344fbd-5269-4d53-9d24-2f0a3e07b3f5', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.792+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('eb228344-c8f8-4ba8-a2f4-b486ff59d8fe', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.796+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('192a9ac1-af63-4aca-9dbf-3861ab360ee6', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.804+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6517635-07cc-439a-bca9-a738bae94c53', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.807+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cd3c921e-7929-49e4-b853-7713f7da68aa', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.809+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c98500c6-8ce5-4e15-9403-aa97f618141a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.812+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('754568bf-a947-459e-abc5-03e37cb53b5f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.814+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bc0becf0-9184-4fb3-853a-d5e3d6be25f4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.817+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0b62b0a7-de63-44b1-9a7f-a08210fa8283', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.82+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f3a49bd8-51e1-4a88-8a21-58cec8640e50', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.823+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0863b4d2-84aa-43b1-8d52-a13e4ed91902', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.584+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8739d789-e629-4047-9e3a-499eae4c3d8a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.588+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('790ba241-04b6-4dbc-a703-3aae9f28eae9', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.592+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=10c01a50-bec1-446c-b395-5d184fba369d]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1e2e80ff-f1d5-4285-9a4c-6dc918f024a2', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.595+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=2d72d32e-3021-4843-b582-d962fee897e2]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c8c6b94f-4a28-4e85-8c84-df60494cf98b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.618+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f83f42ae-5671-49b4-9bb0-0fa535fc4d47', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.622+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9725ca37-c56a-4e25-ba87-3eda93cab7cc', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.624+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('73c7ed3c-7753-4823-b7ef-6826edfb7905', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.627+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ed4512d2-c3b6-4368-9291-0be933767557', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.632+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fc3e96db-5178-411a-8282-b8ee8e5db38f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.836+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b7a50c72-1b48-4c37-833d-76560b60bf4f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.841+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e87d2c28-3bd0-43ce-8b8a-6aa58264d7ab', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.844+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3741adca-df5c-41fb-9031-7c2e9e8a35bd', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.847+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1e2bf69c-236a-430d-8824-16b04daaee9b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.853+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3f6087ff-301b-44c0-a892-88e5523048dc', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.858+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('03e0d14e-d50e-4a91-a845-dd5140cea0b0', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.862+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0f701ad8-b85b-4515-aa10-426a9dd532a9', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.559+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7dcd63a2-1e80-4927-adca-1b19e6e3f7d4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.57+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('32909e4c-0dd2-43c2-b231-01314ae83bd8', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.578+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ca4907f9-2158-4254-9a70-7366407b0789', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:08.667+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ec5ec4b3-49a7-4400-9085-3dadca04e656', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.934+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('97069c13-0085-41f7-b515-144630e3d10c', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.945+02', 'provisioner_daemon', 'info', 'Adding README.md...', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bc2dc6d3-e103-454e-a0ea-28e3ee516811', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.951+02', 'provisioner_daemon', 'info', 'Parse parameters', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('14bc3811-9fca-427e-8bca-bdf4124c8c42', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.965+02', 'provisioner_daemon', 'info', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f38628b1-2b19-4221-9a82-721b4064245a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.058+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bae7a730-6853-41bf-aec3-df57021ef685', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.062+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2cd32c99-b560-4029-9cfe-eddbb7b169b6', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.066+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('618f2905-ded6-4342-826b-230e3f1b07ac', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.069+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fcd5133c-02a9-45d5-98f8-343c28c192b8', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.072+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('edc4a28a-1a05-4181-b523-3b7866ed47d0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.214+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3abbd207-79d1-472e-b311-5d12cfa2adf0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.311+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('055d02e9-70a8-458a-b63f-c9bf055f61b4', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.371+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0d385c88-0c06-4cd1-b69b-23690fa3c6dc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.443+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('be40524d-3b27-402b-9253-9eb7afd8b3a7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.447+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('186eacc1-237e-43ea-bf17-747f20277e80', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.45+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('72fea3ac-e12c-4222-9a65-23b303fbde51', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.453+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a51ebdff-8f37-4a2a-9715-139db970054a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.457+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2ed720c7-8872-46f1-aff2-d637b8ba8f47', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.462+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('72d48510-300f-4155-8ba7-7abeda40e411', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.466+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('234761af-f52a-4b87-9c91-80708bfb57df', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.469+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c1f61684-7229-459f-87d3-52f548675d1e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.471+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4f76df82-b848-4225-82c1-5e8787258b24', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.475+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('20510fda-a6a1-4999-95db-cc3fb4458f5a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.478+02', 'provisioner', 'debug', 'Detecting persistent resources', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('577517b0-be37-4fac-b9c8-a91840bfdf13', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.481+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('eda778eb-66b5-436a-a576-e6793f41b04b', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.484+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6ba43a9-188a-479c-8200-9dc1771558d3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.486+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7341e996-a19b-4a5a-a969-f12137c06c99', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.49+02', 'provisioner', 'debug', 'Detecting persistent resources', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3618eb39-3cf5-421c-89be-5f5d8fb18050', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.493+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0c493997-4fea-4e34-9427-66a80b29713f', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.498+02', 'provisioner', 'debug', 'Detecting persistent resources', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8f0eedec-76e5-45a7-96d6-0f6053dd2b7a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.501+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3bcac134-e265-4cb4-b222-42239602b230', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.504+02', 'provisioner', 'debug', 'Detecting persistent resources', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5baf397f-d719-49e7-9c64-5868ab6867d3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.507+02', 'provisioner', 'debug', 'Detecting persistent resources', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('11f29f58-7699-4825-9f19-044991e2bd72', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.509+02', 'provisioner', 'debug', 'Detecting persistent resources', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4290e889-0524-4a44-a863-50ca5c995dd6', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.512+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8673bef9-01b6-4012-85f0-405abd2bc018', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.514+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e61d6c01-774f-466f-80c5-d48d9d650659', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.517+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5f1cb4d0-6333-40c9-a4f6-35a33707850e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.242+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9349299d-5e9f-4392-a0a9-bf57b81a486e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.247+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('03d69f7f-1ba0-4ff3-b165-57644ae74ea0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.253+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=0c2a9b56-6788-426a-b51f-d1020b2f946c]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2b4f8569-69f4-484a-a0ba-274e7c508460', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.257+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=f029c2d7-f293-4d65-95e5-fbbec8069da5]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2d426394-18e9-4eff-9b3f-7f8ca8212a0e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.284+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4f281678-1ff4-4a32-83bd-0357f02279dc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.29+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e0dde379-7983-41fc-ae3f-125adbb7e0a4', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.294+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1359a82f-17d0-46c4-908b-a6623aec532a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.299+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('46b1948d-b07b-480f-9cb5-94dc56c76414', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.303+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c4a04254-ac4e-49b1-9922-18f00beb81f3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.086+02', 'provisioner_daemon', 'info', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8ac6dfa1-dd6e-48c4-95c9-9d43a3f81fd1', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.169+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e833f596-ecf0-42aa-a4ab-544becc93b2f', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.173+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('53d42646-4d25-4f0a-a90a-2e7344952e04', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.306+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e58bd9b1-03dd-4650-a530-7264f1b77256', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.311+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('13f5bbd4-c399-4896-ad60-3a180a814ee9', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.314+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of coder/coder from the dependency lock file') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4d5547c9-22e3-4dc2-a13d-ce958cad5d05', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.55+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of kreuzwerker/docker from the dependency lock file') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fc1acf12-6058-44c9-a7a3-18ec67538272', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.77+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed coder/coder v0.5.0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('04728b40-6184-41fc-833c-e1b1299ce625', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.854+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed kreuzwerker/docker v2.20.3') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('501c8bae-4726-4365-9b94-0e20063d94c5', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.858+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e420f075-e982-4515-b45a-1b6c5aaf79cd', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.863+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6af54ded-f9ed-4bcd-ab31-f5b7d451cbc7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.924+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6c0ffa8a-47ab-4d83-bcc3-63bd9dff7c51', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.669+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aa2b789b-f85e-4131-8a31-a8125e4ebaf7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.675+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bf3681f0-adaf-4466-ae0a-4251769947fc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.678+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refresh complete after 0s [id=a56ece0a-5fd0-4377-beb4-b863a7b6f643]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('867acd6d-6459-4be3-8b7a-09c912f9a229', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.681+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=799aeb19-6a6c-4127-bc37-02bd4766cf5f]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5cd3d492-6611-4944-b0b4-87e27dab9376', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.704+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('bd8ba462-89c9-4a1d-af5a-35d245fe8fc1', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.708+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f50d9387-c97e-47a3-9958-2330462d7534', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.712+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('44b9aa93-fa16-47f6-92c5-a3e8f6ae2d5b', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.716+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Plan: 3 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e267601b-0bab-4dcd-8cf2-01315983e35a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:57.534+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c2f685fa-b49e-46b0-8b49-3499a6c86c54', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.441+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f0b836ba-dd49-42d6-9d2f-c765f676cef7', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.445+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('365e78dd-d03f-413b-9ec2-c254106fc5d4', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.535+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('90b6d5a8-e690-4475-b05e-2c7d599bdb90', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.539+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f7024b37-d4dd-4c4a-9c64-aecff11a47ef', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.544+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('74bf20aa-8f5f-475a-991a-4baa61ac894a', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.547+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c9ef259a-f267-4afb-b401-c247ac3dd3f5', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.55+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6c6de8e1-0bed-4636-8966-502b7adcf530', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.705+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a017a4e0-cbbf-4ea4-bf91-9936ead5d649', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.771+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7f2577aa-cab9-4e9c-82b1-e2b68f1de520', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.845+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5bbb9cf4-69a1-4e9f-87fb-7ddd6bf41323', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.901+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('49732ed2-1526-410a-844a-27fd51afa8b8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.906+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3ca5f41e-936e-41cf-8ec6-9a322d73102d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.91+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a11b20a0-5b00-4323-a949-356013d91119', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.913+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8a2e242c-d977-4677-8f6c-e0d264d834e8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.915+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ad719a38-a50b-4623-a0e1-a47e04d7827f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.918+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2916ea33-9304-42c9-ae7d-2b965c202eb0', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.923+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('776a479c-8cfa-419d-87c6-9c3ad8a3bd09', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.926+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b3a16e4b-86a2-4d4c-8cf4-dc3488c636b9', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.929+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1756b015-3863-46a0-8ce1-756a3db0ab0d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.932+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dfff1eea-4022-4685-8fe9-1dedf12b1bfa', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.935+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8bfdd0f9-59f8-452b-a5f0-94cf72ee53dd', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.938+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('81e3e47b-bcdc-42f8-9c23-4e3224657961', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.941+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0dd5456e-727f-4820-801d-a73196a99db5', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.944+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d1017c48-e1e1-4f6b-85b7-c432ec0c848c', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.947+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('32f30546-bb7a-4b25-893a-7740d5028720', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.95+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0a9cbe99-0bfc-45a2-a714-91c0fab6959f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.953+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('884b86f8-d32c-4961-a6d2-b74cecc9ef94', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.956+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('07a49cf9-2088-4977-930e-d7019c7fadd8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.959+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0104d747-0c30-40ea-bc37-99d1c5d828b1', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.962+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('14d0e06a-920e-48f7-862f-21b26533c2d4', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.964+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9327e992-19d6-485f-a783-f069195b39bb', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.966+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e566f0e1-5000-4328-bb26-503933a6cf58', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.969+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a622c794-e3de-4d05-ad21-7d15206a8134', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.972+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2c3e911a-0120-4ef9-8bf1-ae38b335f4c7', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.685+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1700402d-473b-4545-ac26-e8c2474ae61e', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.69+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('677e7e30-e7b0-414d-950c-691ece713410', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.698+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=ad27e546-76e2-44a1-befc-04e736c7d136]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('de33d989-b4a0-4aca-bdcc-2f709c89badf', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.702+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ae71133b-83ea-4594-938a-619b65a72dbc', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.708+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refreshing state... [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2c4d3f77-57ab-444e-bcf2-47c0d334071d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.713+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refresh complete [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('08e41e5a-92cc-4593-9a76-fe7aedb89136', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.716+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refreshing state... [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6e2db47-d7ba-421b-bb19-8efb34e15041', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.718+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refresh complete [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('da66adc5-7955-4efa-ae4e-921d89a0a905', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.721+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('86b81dc3-345e-4032-91ca-e179d2f68426', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.724+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c16e6dd4-8590-4267-8d86-86469c58bd38', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.727+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Refreshing state... [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f029d62b-fa15-41dd-a55b-56de56aa9d2d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.845+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Refresh complete [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d420d06e-a470-491f-b77a-76e9efcfd885', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.88+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f29b2f5a-5b30-4450-808d-57633ec9eee1', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.884+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('dd638547-02bd-4f94-8e3a-706d8c4bbb4d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.887+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9733a541-f554-45fc-b9e6-8449d0a7268d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.891+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to replace') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1442786e-4ac2-4a31-bf01-62f71ee1c58f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.895+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 1 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b73e9a9c-2a80-4edc-b9c9-caed1f8fb76f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.092+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Destroying... [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('26bb15bd-55f5-40af-bb5f-68276cdc547c', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.315+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e8dd9645-1e6c-4620-a2b4-db13e3591672', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.334+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('27a857d3-fae3-4e7b-92f3-ba66651415fd', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.838+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6b755e4e-7e2e-407d-874e-2b9d94636d1f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.846+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 1 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d7858aaa-6fa7-4673-9ff2-1b2347088c64', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.853+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('43b1ff4e-b1d2-45bf-aced-0d209ae20ae6', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:10.807+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('567776bf-1821-4c52-80ed-3fce709d0c85', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.94+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('36b8be4a-a30c-4de0-8896-14406d6cfdb6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.949+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('80f21094-54a2-4756-a837-25df3ddc10bd', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.042+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e4a9be07-5e4a-402c-a32c-5d2be759063f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.047+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9b30655a-31d0-4cb5-a2d1-c55de3a4f7db', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.051+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b66c4596-da28-4f0c-857d-d22ec01a659e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.054+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f78aef35-c5b0-4ca1-bba3-1ed73c00d2f5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.057+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5128de3f-c94a-498d-aac0-690fb3a3256c', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.203+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cb707f76-a1ce-4411-998f-492ab315f9de', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.276+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b6ba27e3-22c5-4585-ab89-9a122daa2ed2', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.352+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('155e3a4d-e37a-4443-9609-94ea25793182', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.407+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('803c0af2-6bee-4dd5-bca7-088ccef48d0d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.411+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b045cf9c-4a31-42df-a157-36799cc1505e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.415+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('96af3253-66fd-4e6f-8a02-9aaa2ed840e1', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.419+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a577318f-cd80-46e2-9dc2-e96ddb958fb6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.423+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('918e8d10-6929-43ff-a417-e835a05593b5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.426+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('82a34d3a-ff5d-42a4-9734-c369e56ce5c8', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.428+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f7cb10b8-9c51-4f23-afbe-33b20842feef', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.434+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('77119d73-aa08-4d6a-b2a9-5a876cc38f10', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.438+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('77ba3339-32b2-4c0c-9dab-347a75457e1b', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.44+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('378e1d98-148e-4ba4-861e-9eba8d7f1f79', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.444+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('305ed411-809f-47e8-b5fc-36ab80d51862', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.446+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('b2b3030f-f923-4c11-a0b5-3f88673f174c', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.45+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('72495cac-fb10-4a5b-ba56-e5720fdcbe80', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.452+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('aa63292e-da72-4ad2-837b-4b7d09ca8352', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.455+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7d402a33-e901-481a-a4b0-7975bc710884', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.457+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('26f48c94-98cd-4ab4-a7c9-92b51c559e50', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.46+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('425de025-c374-4359-bb84-36d08b1f045f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.463+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f0a06046-0ed0-4d43-8608-8ede7c923a9f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.466+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c8eae175-6b93-44d7-86d9-acd10e5d9257', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.469+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('a186dc9b-c58c-48ed-90e8-5ff3d4049dac', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.471+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f47f6907-04cd-4ada-b7df-7bb27032d429', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.474+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('237bad3c-59c9-4d7e-9860-922c85106edb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.476+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0aeca511-4a7b-4151-a806-525e03e842db', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.479+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('66abfda2-7009-4d13-bb84-24ab857b3404', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.226+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e1073aaf-e53a-4e28-a771-66a273731128', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.231+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d388445e-b43e-4f8f-a866-66639edcb087', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.236+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1726c68b-dad7-4cbc-bf24-6a6578f50edd', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.244+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=58ea2d09-993b-4754-8c7d-0c0ec944e2ee]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0331dcb4-8497-4b49-b823-be547e2fb19e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.248+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('668a90d0-12e9-4aea-af6f-5c50324ebb1d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.252+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('656ab85b-4184-494e-8a57-891b3343bacb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.254+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e521fb3e-c3d3-4e07-b7d5-d23a14735f3d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.257+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8b6e20ee-cd76-44f0-a361-24e3b91ca966', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.261+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7a5cb85d-85d5-4e4d-9bac-6b71b17a31a7', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.263+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('61a50656-1299-4920-8cfe-a3d496fb7601', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.266+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c748eb20-3d36-4dd1-9d67-94f187845e60', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.377+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('11300863-799e-4a8d-9d4e-e816fe59f8d0', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.388+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('148f401b-202f-495d-a00d-3edaf2d98b54', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.392+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('518cc0ce-b6fa-46af-be96-7eb0745832c9', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.395+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('abdc6fea-3ecd-444c-b0b9-a0c5c7b04bd5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.399+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('098266ee-37b3-423b-a915-1eebed4a9382', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.51+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1dd3c1b5-aee2-4c3c-a43b-98abf577daee', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.752+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('785540dd-ba37-4111-900a-e63fe74c80c3', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.763+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('1dd9d93f-3497-4fd4-acd5-676807a332a6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.769+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ae1db4e6-6f61-4e96-86a4-90869cdfd4eb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:54.754+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('5ff779e3-9dd5-48a0-a5f3-a7a80d029807', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('59a25c28-c558-4571-b853-bee95d5fb22b', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.444+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('9a497a9b-63aa-4424-bcc8-92ffc1dd1259', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.534+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('672df058-dbd9-4eb2-ab8e-21033b6104c7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.538+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2c9dccb2-41d0-40bf-bcc4-04d77075474f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.542+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('4168300f-5094-4235-91b4-6b3b4777f3ef', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.546+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('12c537a5-d863-4fe3-8b04-9ba93d749a64', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.55+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e9be6d15-d900-47a1-a2af-9f1f51b3644c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.156+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0a588339-f93c-4a54-9655-59e4fd30f49e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.821+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0b21faa5-29a9-4b78-8a5b-2afd05d250eb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.027+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('47176b70-e029-4b88-9ba7-4b19781da315', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.086+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('eb7b92a8-fdcc-475b-88da-8b2e1c4c7a57', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.16+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c7b928c0-f6fb-4d4d-836a-8ff389bf8aad', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.163+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('ed8116ca-5692-48ba-bc64-359bec1f54a6', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.166+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('19e91c08-0342-4c21-8a23-8690b567a3bd', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.168+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c1144133-37fa-4715-9e1d-4301287ef9e7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.171+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f454b157-5e4d-45ac-83a6-aaceb242af1c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.173+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('78ef1dfb-8de7-4c09-9775-9ac2b0c8fccb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.176+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e17bda0e-e339-4f28-87ad-af15ff5103c3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.179+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6ae8b6b5-7817-414d-bf79-dd6f78a9db26', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.182+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e3e90d48-336f-4d41-a90b-cc569633e5d4', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.185+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('615327b8-8a02-4afc-a6be-a4e2d0758ebf', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.188+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c30bc373-2667-42e7-aed5-bac2907c1813', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.19+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c7a73bc4-1d99-4230-89c5-be15c70db5e3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.195+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fa365813-ac49-4cb7-aaeb-a9344156b73a', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.198+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('e501ee90-28bd-4d20-ad99-12a09fe8287e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.201+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('f4708ad7-013b-4149-ba57-8d30f8198142', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.203+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fa4f0229-187c-4654-aff8-6cee50c6720e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.206+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0ccf37bd-877e-464c-9931-97564752f445', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.21+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('64242d19-9374-45e3-a46c-17833470e20d', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.212+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('027cb177-34fd-4137-91a8-f0b63c0ae8f1', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.216+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('fd28c560-d002-4f4d-947e-75a9dd98ae71', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.218+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('35ad66c7-fd53-49a8-8a08-993abb9dc471', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.22+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('2d4d5e8c-2eea-42ba-8aea-2f250af13f8f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.222+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('cf9cb3ab-8af9-4b34-8500-02979c138c4e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.952+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('8537a20e-b447-423e-8f68-24b53582c88c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.957+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('989116f5-b114-4df4-9b4f-62417b12cdd5', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.962+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=2d72d32e-3021-4843-b582-d962fee897e2]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('33440676-d562-4284-8496-e9be767976de', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.965+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=a9bb9c27-a53b-4524-821b-64d3bf2da47c]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('3ea2e134-018b-4291-b9ca-d7db05a6a127', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.969+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('45d2a1e5-73a5-423f-a0bb-43a4fc49f457', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.972+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('71910cc2-83f8-4507-856b-7a95de0ec6f8', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.975+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('96f27f81-0b5c-49b0-9b69-18ab9bd71d74', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.978+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('6f7ec6ad-1f57-44b9-b1d3-d23e26ceca6e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.982+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('13d86e02-e7ab-4390-a80b-dadee7fa8146', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.985+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('214603da-529f-42e5-964d-77e91c92940f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.99+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('52409cc8-c6ce-4d8d-8c53-dc3e3734ae17', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.11+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('957979e1-7611-49f0-8756-d7e2a4eaffee', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.125+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('d364a7e6-249c-4fd9-a041-3854b03388f9', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.13+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('27daf314-7f00-435d-8fad-f037882392bb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.134+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('736b42be-7b2a-4f91-8676-37e12f2ca6f3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.137+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('0bcd3cbc-916b-417e-96c2-afb5e83c9f3c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.14+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('deba29f1-462d-4e70-a6e7-ca2cb8ac5b70', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.257+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('118af4d6-67f3-4906-9585-4b4f1cdefc57', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.579+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 1s') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('c257a4c2-83f7-45b4-ae42-652a93547b51', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.592+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('825b93e0-a4fb-4807-9570-2190eec03ba7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.595+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; -INSERT INTO public.provisioner_job_logs VALUES ('7ebd786a-4c6b-4d81-b66e-c70912ac2036', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:45.612+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d09b6083-e482-41ac-ad06-3aa731ec4fc6', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.936+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fe61a03b-d5b2-4ba4-a437-253ea724d149', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.943+02', 'provisioner_daemon', 'info', 'Adding README.md...', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1badda17-67b2-4795-9351-6a2cee04c22a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.949+02', 'provisioner_daemon', 'info', 'Parse parameters', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('80b05e59-1fdb-48cf-99ed-27ed0aba8ecc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:31.956+02', 'provisioner_daemon', 'info', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4a5c2ec6-c2e2-4136-9423-14cdff1d6f13', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.046+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7da3c668-9812-47b7-9d22-43138800a307', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.05+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2f752172-65f0-4a43-9378-c5d0997eca76', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.054+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f6c293ae-a496-40c2-ab8e-b7d64aca4bdb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.057+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('15948e16-e69b-47c2-821e-6c0b375dccd8', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.059+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('62d872e4-9a8c-4cc5-9f21-083bfcb6a03c', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:32.28+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bce64698-1b64-4ef6-94b7-b5fd071b31e8', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:33.826+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installing coder/coder v0.5.0...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('35c436dd-3beb-4c5d-9f8a-16198d2fbcb7', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:36.186+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installed coder/coder v0.5.0 (self-signed, key ID 93C75807601AA0EC)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aa80ec91-8b8f-4268-88a4-111e5b368bf9', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:37.718+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installing kreuzwerker/docker v2.20.3...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e322b727-fddf-4d31-b0ad-fe9fb0532586', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.978+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Installed kreuzwerker/docker v2.20.3 (self-signed, key ID BD080C4571C6104C)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('26cac587-a5c7-4691-bab4-0fa1436724c3', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.984+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b192bac6-94a0-4e89-8d88-eba6c1028abe', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.988+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Partner and community providers are signed by their developers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('57162911-66a9-4597-a289-643724057e2d', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.992+02', 'provisioner', 'debug', 'Detecting persistent resources', 'If you''d like to know more about provider signing, you can read about it here:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('19227832-c872-4d8d-b610-c649da56984e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:40.996+02', 'provisioner', 'debug', 'Detecting persistent resources', 'https://www.terraform.io/docs/cli/plugins/signing.html') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dce2aa32-5dbd-4c04-af85-c7ef585dca6a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6e220907-0654-46dc-bb56-212153032d5e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.003+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8da2943d-7295-43a6-b560-e946c127b0a0', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.006+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('79b02372-6db4-4cd6-8c69-c94e9ef2fb5b', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.009+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4b810053-fde0-4579-b2fa-f3a80d9f3f5f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.012+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('76a7934d-b410-4ccc-a57e-1329aefe0203', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.015+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('133aa0b6-4da8-48e4-9428-62f6b7635510', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.018+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a0ed73d5-e07a-4b3a-8046-8fdaefc1dacb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.027+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8b67db19-e012-461d-a538-d1dea4f91ef4', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.781+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('60637ec5-5231-4407-b62d-13e44074eb7f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.784+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c3ed554e-b395-4adf-8642-f7596a71c4cc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.787+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=20990c34-2afd-4e54-bfa3-9b7e5beea09e]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8b988379-c1e4-442b-9232-65fd926eecff', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.791+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=fc8ca501-3820-427d-92c5-d8ca4fd45362]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9a4e58db-512e-42db-9349-29ebef3c750f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.816+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('45f82833-a53c-49ca-be8e-1545917d7062', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.82+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5c0eb2ac-825d-4ad8-bed8-63d59266030e', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.823+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9fd0dc4c-e75d-47ac-9676-2e4182da7edd', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.826+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b9a391a5-117f-45e0-9a2c-89b13c32d201', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:41.829+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7470c318-e457-4b2c-b61d-4fbab6f84fc3', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.617+02', 'provisioner_daemon', 'info', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('975d23d1-aa43-4efc-b533-55a07e8cc3bf', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.705+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f4cad918-2fb0-46a2-b64a-daa899b659fe', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.708+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dc6331d7-41a8-4f65-8a89-da54638b5aa0', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.846+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ca307075-af47-4fa5-9d3b-4744acc7a0ac', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.851+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('61df6634-b81b-4fde-b7cb-13ed3f97b210', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:42.855+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of coder/coder from the dependency lock file') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9f227da4-3fa0-4d7d-a65e-38ccf06bba2f', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.06+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of kreuzwerker/docker from the dependency lock file') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e79c1b3c-5db1-48fd-ac61-3fb667e3fc97', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.319+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed coder/coder v0.5.0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('28ec8811-7aaa-460c-b6e2-a9b85eb46b4b', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.405+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed kreuzwerker/docker v2.20.3') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cef26c13-8a06-4ae6-946f-216db5cc0996', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.411+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fe2bc9eb-b7ea-4d20-8d7a-b2be1d3c450a', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.415+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d49391ed-7b60-459e-8fe5-4dd4783f6629', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:43.45+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('25f8cf7f-4cee-4891-9f14-4e32002e6661', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.179+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ca6ad386-5647-49e3-9b05-0f4cdfd35b01', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.184+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aece424c-595e-4ad8-a1cc-0938d037a3cb', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.187+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=ccf0bb8b-fca5-408f-b4a6-93434185c25a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f345b9bd-429e-468f-aea4-8c11709991da', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.19+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refresh complete after 0s [id=5e7ca627-de78-4542-a964-acda3f038ced]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('31b0cf2d-4a8b-4860-86d7-ec9fc5e58abc', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.208+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('602d137a-eaad-4b34-9a5a-e2169adf1b17', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.212+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d5cc54cf-0390-4fa7-9ff5-3bcd15cbe351', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.216+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a2f6c1a8-05ff-45a8-ac0e-490f7dc0b7b1', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:45.056+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2dbe9812-907b-4344-b602-14c680fd460c', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', '2022-11-02 13:03:44.222+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Plan: 3 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('377e167e-4133-40d8-b62b-e33369c5ed55', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.437+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6d970dad-4051-42d8-847c-07320fb9b110', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.525+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('501f4bab-6eb3-4278-9192-7ae725943418', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.528+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('80e17591-51fe-4fda-aa90-18caa59d1b7d', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.533+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bdd4192d-9f9d-4300-8b4e-f1f12a8479a8', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.536+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b46e6002-1277-4d2b-88a6-97f2f250766e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:11.542+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b251b96c-368b-4be2-982e-621372dd1f0e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.072+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('294bdb11-4229-46a0-a926-34590373e945', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.155+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('70eab552-5fe7-491a-a275-22059e959ccb', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.212+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c32727e1-ca44-405a-9419-038107c4bc96', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.285+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9e3ae09c-09bc-4a27-b271-9446198fb60e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.293+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9d2d3770-f969-4796-9d65-6cc903593d52', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.299+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4fdc748e-938c-4809-9125-caae1c44fd74', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.302+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('57b70064-827e-4763-b8a0-473f99797b48', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.306+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('781a7128-f401-48e3-a752-4f5d3c636ead', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.309+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('71dbe7ee-7537-4cf3-8f33-8c309ebe8b7e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.313+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('360f1a19-7904-440a-a539-6f035169d093', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.317+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('df6ba6d2-fada-4b68-a8a6-978fdc7b55e2', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.32+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bfc96ab3-fa05-416f-b21e-c58a3ab123f2', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.323+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('44a12cb2-da79-469f-b971-c4bf32fe406e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.327+02', 'provisioner', 'debug', 'Detecting persistent resources', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('299f3930-0423-4e75-ae4a-526e37f481c5', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.33+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6bffd24-8365-4a00-98ed-1e1f978aca49', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.333+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0422f763-da4f-4552-9562-144927bec94d', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.336+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aab83530-7dcd-49bd-b981-5c29cd9674d3', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.339+02', 'provisioner', 'debug', 'Detecting persistent resources', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3089607c-329c-4ee7-88dc-e9f48318e52f', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.342+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a20e18c7-daa9-4e40-9ed9-9c11a2ccf5b1', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.346+02', 'provisioner', 'debug', 'Detecting persistent resources', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('582dbda6-f79c-43d5-b215-2da3b13bd406', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.351+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6cf795f-35e7-45ee-98d0-8be04d7ad6fe', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.356+02', 'provisioner', 'debug', 'Detecting persistent resources', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f36be7f7-a6c2-40d1-9722-ae8e4d920a08', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.359+02', 'provisioner', 'debug', 'Detecting persistent resources', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3c03dd84-79e1-4abf-9900-05613cc82664', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.363+02', 'provisioner', 'debug', 'Detecting persistent resources', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4cbcab55-cb60-4982-90f7-be05ffac7566', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.366+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3d553c50-de3b-4770-8bed-2792c6981362', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.369+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1137030a-bfda-4391-8b17-6a1c1a5e2749', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:12.373+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bc462919-aa4b-452c-b945-35965cf138c5', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.157+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c76057c5-2191-4336-b7fb-f104d3c4054b', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.162+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5a1771fc-0028-4edb-9bdb-86dcd4c58687', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.165+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=13dbb32a-5197-458d-8092-6f00a7df5d19]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f29c2e5d-3392-43c3-ae80-1deeea71f11a', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.169+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=2ab63b5c-7d85-43db-ae90-cdcdd27ca4d6]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f3eb65ac-2be8-4b88-9bb8-618bfd70561b', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.201+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('739ec94c-4700-4562-80f7-7f254aa8b129', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.205+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f01666b7-4de4-451f-8710-8aa63d32aa8e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.209+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('556f3f57-5a46-49da-aac4-66ed5d101e7f', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.213+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('55d5e4f7-e80a-4622-9168-7e412651b91e', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:13.216+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('664fe6c8-1fec-410c-93d8-385e8b65e7d4', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', '2022-11-02 13:04:14.076+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1af37305-2e9f-445d-b3fb-dea1dece403b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.436+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5da10ab9-a23c-44ea-98bb-865dc706eae2', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.44+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7d8d1b95-2660-4724-a2e5-8c0439eff2e7', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.534+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('89f7bb3f-c495-4567-a188-25c5b41f6e5d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.538+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('050649c2-fa47-407a-b871-b9f9a8a48b49', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.543+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7d7e19cb-238c-4293-a488-5f61fe83d9d9', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.548+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('daf99de4-753e-4a40-a412-385a97ffe655', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.551+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b10105f1-a4ca-473e-a33d-a6755709ac7d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.776+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d974959e-0c77-4c38-8302-dbdea5f8b702', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:19.966+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3d0f0030-8fdb-4193-9f71-e7648c0b00ca', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.023+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5e93f614-bd73-4fd7-bf0d-85c61e8294dd', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.095+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('160b7134-0cd1-4c28-b05a-ac7fa6d5d05e', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.098+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7b4b1ca6-fe48-4f1b-bd9b-b6ab54b3cccd', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.086+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8a234d62-5d70-450d-ae9e-fd46186a7717', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.102+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3872d0e7-f5fd-45f9-9027-ec41eacdbc8f', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.106+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('02eb7d16-8513-4ac8-af9b-bd096faccbe0', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.109+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('afefbc98-b47e-4c32-99cc-a2cbe7066d43', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.112+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('785eef1d-66ce-406e-bf12-5e2e95ffdf4a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.115+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cb782ff3-5ef8-4312-9431-8a44aed28d9d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.118+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('02003fe3-ac96-4cdc-8683-5042aff7ad81', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.122+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2f203901-94d5-4e9d-8988-d06224e9fa0b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.125+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9d53f365-961a-43df-8a0e-b974649183aa', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.129+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3dd1ed46-1de4-4362-bfff-784182b44471', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.132+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c03469d0-08a9-4378-b538-50d6d1d50c79', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.135+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c6166453-3033-4d69-a5f0-4856776c76e4', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.138+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fa7a0d2f-1bd2-46e9-9f25-8bd45860dd98', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.141+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a1fd6072-dde6-420c-bf8e-9ebc4d537866', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.145+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cae1268e-b797-4e97-83cb-95ff016a5a63', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.147+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('938f0d99-4dc6-42a1-b6b9-c9e70b450cd5', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.15+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3d9d2115-f6ea-40c2-9f56-5075cada0c34', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.152+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('46e2af39-78f2-4a37-824a-0b4f2dc54764', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.157+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1ae80356-6b65-4ff6-8230-7cab8a8cfaf9', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.161+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('386b59ce-c30e-4f7d-addc-178e223b1d87', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.164+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b18f40d1-f649-4f34-b332-feb6690482da', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.168+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0747c356-f2ea-49ab-b7ba-292ed9abff7a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.171+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('da54beff-b031-436d-93f0-67f2ff53be96', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.94+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('78007aad-5614-4d0e-9fa9-ae1307b6240f', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.946+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3159380d-141a-4d2c-9a69-cbc90c5fe71b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.951+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6e6a0df4-feb4-4339-87ce-ccf48ff873db', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.956+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=17cc17af-8bbb-4761-ad39-da62ad512c23]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('88cae505-15e1-4ca8-bcf7-8bd1c3af8030', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.975+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('463ef456-2b86-4c67-bc2b-23079a793142', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.979+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e29a0563-0299-42df-8f3e-38fdb851d743', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.982+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e0756af8-2cce-4246-a589-a4741eee2359', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.985+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7e6f0608-02b9-4523-bdef-5a8cdf63d65b', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:20.987+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1fb337be-0749-4e98-8513-62164696b42e', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.166+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6d785a3a-7864-4cbf-9612-af13c4347f66', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.172+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9e3f0f0d-3269-48c8-aa1c-f633360809cc', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.185+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d6bc2b50-2e74-414a-bf13-a43189e86abb', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.192+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0e090bdb-12b2-4959-9230-9b014af2b7ca', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.195+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4bfa811d-9368-4548-be3e-3f7884d2ba5d', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.198+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('00ef0ca8-439c-4b3f-94a4-cd086d15e9d2', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.21+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('53d6c9b1-8d43-4f0d-963b-8967ee2a3409', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.74+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f29082e9-aad2-46f9-8d4a-bacf3d3618dd', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.749+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6a3690dc-6e1f-400b-b47f-af64bd007a55', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:21.755+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('473429ac-5ede-48cd-b754-9b3e498aa60c', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 13:04:22.83+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f5303749-4d64-4f3d-ac0e-81e629355e86', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0812fe54-1b04-4b52-9f43-049fa80467e8', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.444+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('31f9020f-3378-4209-a421-7399c86ea76d', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.54+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1110403f-1865-4dca-97a7-4ecb14a97134', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.545+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('955f1a84-1718-4aa7-8022-3ea41d2ba1ba', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.549+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ea27eb37-4934-4bad-bbeb-8a7f0bec0498', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.553+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3525b9d7-69c2-4537-9f47-6290966b4f3d', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.555+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0b83bb69-0b72-4e11-8c13-2b68b90217a9', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.832+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bff36240-532f-44d0-ae0f-2c2faa22ebf3', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.941+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('755ab7f1-8af7-4e73-bdf4-e7d42250f102', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:48.997+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('41af9b10-8823-40ef-9acc-0c7c0aac73aa', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.066+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4eb9c01c-e77c-4509-b1d3-f394383e00dc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.072+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6baa0b42-517a-4154-804f-50b900a17cb0', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.077+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5ed6a9d9-ce78-41f2-850b-c54354ba85fc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.081+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f674b8d8-1aca-475d-84d1-74e68caad7c2', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.084+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bf8e0403-bc1f-4200-93cd-d459c5d4eea5', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.089+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2a26f80a-f534-4a57-8f60-61b0245b2a28', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.092+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d687a831-e9cf-47f7-8fee-2b971e07110e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.095+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5f1ea8a9-583f-4613-9cf9-2ae1dada1013', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.098+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('63a97f16-df0c-4064-abb1-fa94edff116b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.1+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0659c1b7-ba0a-4153-a121-1b707d6dba43', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.103+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5026c663-c180-4880-b27e-831ea7b915e6', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.106+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('11bc6add-90ee-4ef1-8270-2c4b75149666', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.108+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a4ed025f-5228-40fd-97dc-3f581423760c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.11+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f87eb959-7fa4-4574-b57f-0d25eddb5780', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.113+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('190ce772-4a3e-48d1-82fc-6d2c4406376b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.115+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('807aa93f-0413-4158-9706-aad0f2bd3472', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.118+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('224ba0e5-1c27-44d9-8dd9-d04843eed695', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.12+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('744e3d76-8b8d-40c2-a3d3-2b2707720a2b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.123+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('53594c81-a9e6-4ab3-babd-5491157c4de1', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.13+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('86f24df0-9053-4aee-a55e-39186d23dd9c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.133+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('710b2445-edfe-4b38-956f-f3ee83affebc', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.136+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8e29a006-dbbc-4cc2-8856-70aaddc70627', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.139+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bbf4cec8-2edc-47e1-9f18-71c0d0f3229e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.88+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ad23bec6-86a9-4831-9adc-3ee4d979e49c', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.887+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0a0c2ddc-94f4-4d9a-a403-c0229939ad38', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.89+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=69d8c247-a4cc-4de6-86c0-ce073255316a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('992e7b85-8c39-4c79-82c8-d9e616baf3b3', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.894+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5abaec85-0b9a-49a0-a547-e40f68123865', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.898+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('927353ca-a7f2-4604-b7a2-0b1e3c5bd1da', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.902+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('94933b2b-bf01-45c8-a0e9-6c82700cd4d4', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.91+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5b8fcf47-22e5-4ced-a3b7-aaaef79f8452', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.913+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2c9cb430-1dc6-4896-a0c8-469947399523', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.917+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9cbe3787-1861-4007-8803-f071482fa2fa', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.921+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d8b2a8a8-c653-412e-a70d-dc65a14c2af6', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:49.925+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6b22e12c-75e1-4f5a-a571-add29e687bd8', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.043+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('db7d2cd9-0331-4e1c-9ae2-0cc18cfb1d5e', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.057+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('71455c3a-c6ec-472c-9b6e-e174697c3e93', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.061+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5580b627-218d-43eb-b619-b269c796b158', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.066+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9499f481-527c-46a8-9a9f-f84ab5caf603', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.069+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c245b280-6683-4aea-ab6b-55dd8ccc02dd', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.073+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0aa11a57-2d0c-40f9-84e2-793d47db516f', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.174+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=a1ff536472e9efdd5ed90d6aafc28669799668007ab93823567ac08066822244]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('354d0fe5-252d-49eb-a432-3672bd77f421', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.472+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e4cf8c6b-2e24-4db8-bb71-d57c5c88157b', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.485+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('651e7bf8-eeb1-41fc-acca-d00036fd1dbe', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:50.49+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('15a9676b-718b-4461-9e62-81fbd550a897', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 13:04:51.51+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('109203b0-c680-45fe-b470-ab383e7322f7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.438+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('25618f60-4596-4bb5-9ba4-daa75e885289', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.442+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('53042802-9b70-4933-91ab-b2c0bc444693', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.545+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c9ad724a-5481-44f7-b8a1-b450dc5051f6', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.549+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('71bc590a-a0e5-4268-89a7-d6178304d91c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.552+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aa7529a0-8020-4268-a106-bfa9d7b8db45', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.555+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4ebfc500-c4ff-4247-a4e8-14e6814d9fac', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.557+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('541853de-e473-486d-b6e1-3b6e78518788', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.82+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2778a009-7045-4773-beb6-4fb7ca574116', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:55.993+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ed060a03-3f5a-4695-97e3-22d7deab8d38', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.053+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3564ae4e-b903-4431-96d9-17d7bac188f7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.128+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('683bd5c5-0397-4d70-8e5f-7d5995f1f38a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.136+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('55d3ea8e-5bc0-4aac-aa19-4d4c74146503', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.14+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cbff931a-8b68-4dfa-83a2-40809e7add5d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.143+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3fff2b02-6fc5-421d-8c2a-1ab8ffbc9fcc', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.146+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9ac3b08f-bb36-4e21-828f-4ae47d2b9719', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.149+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('74d08fc2-27a1-403b-85f8-24ec862dd288', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.152+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d2511df7-1992-4c8d-b5ca-bb60bc638ce4', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.156+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('681814dc-5855-4e4b-8907-c9de0d29b119', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.16+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bbbb300a-9a20-4e88-8f12-4de90b82594e', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.163+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8bc2492b-fd16-4098-92e9-7d8ece563d3d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.166+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dcdf65fb-c226-4554-8fec-edbb04f1414e', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.17+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8820392e-9d9e-4988-9623-ee1af0059d11', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.173+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9c64a617-539b-4e57-a750-355c66cf15cb', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.176+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bffd2b77-7f42-4aef-ac19-586998a6f614', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.179+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d7fcb4d1-6c30-4777-83c6-015b0f48a970', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.182+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cdcb62d9-f347-4654-b5b2-28fd6960a509', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.185+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('95ea3beb-90e7-4787-901c-f570df3bd801', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.188+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9797523c-35ee-4ed3-a69f-af357fafc42c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.19+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bb8189ba-82a1-48f1-bf1c-e000659f8697', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.193+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7d86f4fa-e8e9-42f7-b1f6-f27822c67292', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.195+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('17e19806-b748-4837-9166-0bcae6592ffe', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.198+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('07392a8e-31b3-4e7d-ade1-a09d4c2ee2b6', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.2+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('524bf497-10f8-41d3-960d-ed67df4fa9ec', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.204+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('326c0c94-5c0a-45f8-8a26-1e8639553502', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.954+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8a6b7cd1-f0f5-4972-9364-cdc5eeb61f0c', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.958+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('61b04b23-eca5-4c15-91bb-bb88f00a2021', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.962+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=b65a767f-719a-4883-a186-aeb1ac05cb25]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('73e70e26-c6b7-4d8e-a9cc-1acc06022279', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.967+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=3a9a1feb-e89d-457c-9d53-ac751b198ebe]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('74683648-d94f-4d9e-9e6d-bf5fc05fd706', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.972+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refreshing state... [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0c241c2a-7607-438c-8af2-c3641959f485', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.976+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('944880c1-ef75-45b8-a60f-f17800a83023', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.979+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refresh complete [id=0907dab9-1909-4d03-bffd-936a2a05a22a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7a466591-e523-4fe0-9df3-564a35161f49', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.982+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refresh complete [id=coder-admin-my-workspace-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c4e5c961-e812-40e3-b0a4-bc5bb781751d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.986+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refreshing state... [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0b2bdd2e-4c9f-4514-8f42-0650a0be805a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.989+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refresh complete [id=5f1c2ba3-6b26-409c-9790-df56b62efcbc]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d3b5a8c6-f038-4147-a074-4603945ed27b', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:56.997+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4f2c80f8-d06b-4670-976e-3b58b5f8200d', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.002+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('755914cd-d41e-447e-9343-284fe4c0a9a5', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.006+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 1 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dc059e5c-18aa-4d95-b50d-9861ee068be7', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.229+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ccbb8238-0a62-4d0d-8269-3709ce02f47a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.964+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e8fd1570-dfb7-4bdf-9d13-fd1dbf3cb124', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.967+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('76167fa7-9670-430f-9536-176cdc4a9f5c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.97+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9d1e67b3-6bd8-435e-96b5-c7b012b42604', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.972+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4a8a8443-c6cf-435d-8527-1a782b74b838', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.975+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('45c669a4-88fd-47f0-98a3-e0875d352d7a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.16+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c48882a8-d865-44ee-b8d0-6fa60a255848', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.165+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dda5b5fe-027d-402a-8852-a4ce2bfe4d71', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.17+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ea5f28e9-38b6-4d6a-8ffb-9e48657632ea', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.174+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('53224434-ead2-4aa3-8c86-177bc4c8fc3b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.181+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('71ddfedf-d129-495e-bb80-ecf16f789be0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.186+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f2f59832-212f-466c-92f3-ede2f34fc731', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.189+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b10e5078-18f2-4ccc-875f-134d5724667a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.857+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('566e4cb4-2828-43f1-af4c-5797a7fd3504', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.868+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ad17b455-6adc-4f4a-851e-c8fa568c20c7', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:42.871+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bfe7a100-7f42-471f-a210-b687bda0fc24', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.739+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=db4aecde657b126939e8bad412b953314cd1316fe7b3f3d061203d0a71e037e8]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e896bbfe-86a0-4f7b-bf6e-4b848d945cbf', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.743+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 1 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('250130a2-19fd-4cce-874f-c74d55aa2f14', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:57.748+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('91616345-1c98-40ba-a4d3-23514865abb8', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 13:04:58.769+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('35036434-b0d7-4d8b-9b2e-2a55fb045bd7', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('80f1e6fd-8e57-46a9-bcc0-436d9ff34cc2', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.444+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d4aa27c1-8b51-455f-ad37-ef3031e9959d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.535+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ef4ffdad-1b7c-42e9-9ca4-03a878e8efce', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.54+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('caae1027-94c4-4ce9-a58a-c7629632c763', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.545+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1d890d4d-1b83-4cbc-b4b9-904150e970ae', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.549+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ebe2cf5f-bd32-44e9-95a2-e92fd68e51f4', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.552+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('849e5476-f4d6-42aa-9331-a80a27a12107', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.916+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0c142d37-a1d7-4ba1-b3e3-a2544952099a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:40.984+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0654054e-9f59-40b2-b899-0b8a8ec3f33a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.044+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('edc50f19-4bbe-46bf-8f13-292384708095', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.114+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ce618bdf-d2b0-4857-98d4-842d33f0154b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.12+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('794ea457-7da4-42c0-a960-bf0895541c9c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.124+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('47d5a9e6-4b36-4129-a746-5611767673cb', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.128+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b23c35f8-a06c-4716-9d6d-1ab79dda11bf', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.131+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('75fc0daa-c636-49da-b635-09bb34b69a20', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.134+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('56702227-afc1-4413-a939-36f521e80d4b', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.137+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('becc9242-efa6-4ed9-a69e-8f4c589529d0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.141+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('37205ac5-6eb1-4773-9def-cfd48cb8ce11', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.146+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b85b9b97-4fad-442f-8662-af1660d73f3f', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.15+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('80c19b36-2754-4b72-9b5e-59518b293241', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.153+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2dc14d18-0cac-4a18-b7c1-1f3b858db5a3', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.156+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d0d6d612-755f-418b-8c2c-d3509a42abd0', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.159+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1f466eae-c2b8-4942-a189-07d80f8cd34c', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.162+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cf37bd97-4ae3-404b-8f0a-94a7f2bf9af1', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.165+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8000ff14-2939-472d-ae75-ff323d5c02df', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.168+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('116ed6f5-9486-45c8-a460-de9491854550', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.171+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3e3ba08f-2010-4e24-bbc9-97a0f17ccae5', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.174+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0ebddff5-9fdf-4026-885e-5bfbe81cf837', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.177+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1e283699-cc08-47c6-accc-69c1d1579540', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.179+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('08c60987-9653-4c60-8d72-60c930581bac', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.182+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ad734b46-eb2b-4566-b2d2-b8f5c6a65192', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.185+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ea094a42-52ef-4974-a81d-db49d6dca17a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.188+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d962bb9b-9ffc-4131-b9e2-4b540a025d20', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.191+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8edcc52f-4242-4c78-b375-eb343d439e2d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.916+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('33f37088-1e7c-4cfb-b150-5d5e735f6da5', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.924+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('123192aa-9f05-4924-b724-c44928a6034d', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.928+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=fe418e81-b8a0-4f69-87ea-a0a597745e29]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('15a7ed53-89f0-43da-af80-9b95649e0697', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:41.931+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3109c750-9158-463e-b1c6-7e8a9d562a54', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-02 13:05:43.883+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('451eda7a-d6a8-464c-893e-78796ef328bd', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.941+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6cd03ef3-ca74-4898-b014-3823feef5014', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:03.945+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('be374e41-cf6f-493b-a799-e2f548f940f5', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.047+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('351f9dbc-1936-4890-b145-d1644c4a346a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.05+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('040204a2-cdf4-4ee1-9704-7c8ec1fa0374', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.053+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('09c75767-3d08-4673-b4f6-eca8fac2058f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.056+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c986858c-c26e-49ea-a011-38e07510dc51', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:04.059+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1e352ba9-9fda-4a5e-9bc6-38baac1ac124', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.453+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('778be809-e832-4518-b63c-b4d4ea9bb24f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.62+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d2302004-ed2b-4071-bec5-ce9f16446aaa', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.695+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4055c54c-f128-46a1-86f9-ccec28d9cb9f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.75+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('05cdffde-f37a-4899-97ad-b3954c99fe20', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.754+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('20215593-28a0-4a44-8d23-f990171d6e25', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.758+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('74c22124-ad8c-4c8b-9c38-e074c0a6690b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.761+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f5df23a6-6461-4b64-bb02-16b4c8a8558c', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.764+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('89564128-9d95-4dbf-bfc9-3e0a3e080f6a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.766+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e9c32ce3-71f1-4b4c-a269-c8f26b70d2cf', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.769+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9ea0b406-aed4-4dde-978d-0aa184d905ab', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.772+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e2c45f9e-f037-41fc-b1a0-3415309a4bc7', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.775+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e70b1f1f-a226-481b-99a7-84ea9df1aeee', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.778+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f2724cf1-bbda-40ba-825f-64333171092f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.78+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4727c32b-90e1-4d27-9c52-e782f00aec3c', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.783+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('56d15d39-2f3a-4128-9462-109a7c35d3e4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.785+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d2837d78-e7d6-4c6e-a7cf-4083f774a060', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.79+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fd344fbd-5269-4d53-9d24-2f0a3e07b3f5', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.792+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('eb228344-c8f8-4ba8-a2f4-b486ff59d8fe', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.796+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('192a9ac1-af63-4aca-9dbf-3861ab360ee6', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.804+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6517635-07cc-439a-bca9-a738bae94c53', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.807+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cd3c921e-7929-49e4-b853-7713f7da68aa', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.809+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c98500c6-8ce5-4e15-9403-aa97f618141a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.812+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('754568bf-a947-459e-abc5-03e37cb53b5f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.814+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bc0becf0-9184-4fb3-853a-d5e3d6be25f4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.817+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0b62b0a7-de63-44b1-9a7f-a08210fa8283', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.82+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f3a49bd8-51e1-4a88-8a21-58cec8640e50', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:05.823+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0863b4d2-84aa-43b1-8d52-a13e4ed91902', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.584+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8739d789-e629-4047-9e3a-499eae4c3d8a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.588+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('790ba241-04b6-4dbc-a703-3aae9f28eae9', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.592+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=10c01a50-bec1-446c-b395-5d184fba369d]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1e2e80ff-f1d5-4285-9a4c-6dc918f024a2', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.595+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=2d72d32e-3021-4843-b582-d962fee897e2]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c8c6b94f-4a28-4e85-8c84-df60494cf98b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.618+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f83f42ae-5671-49b4-9bb0-0fa535fc4d47', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.622+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9725ca37-c56a-4e25-ba87-3eda93cab7cc', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.624+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('73c7ed3c-7753-4823-b7ef-6826edfb7905', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.627+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ed4512d2-c3b6-4368-9291-0be933767557', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.632+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fc3e96db-5178-411a-8282-b8ee8e5db38f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.836+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b7a50c72-1b48-4c37-833d-76560b60bf4f', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.841+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e87d2c28-3bd0-43ce-8b8a-6aa58264d7ab', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.844+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Creation complete after 0s [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3741adca-df5c-41fb-9031-7c2e9e8a35bd', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.847+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Creation complete after 0s [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1e2bf69c-236a-430d-8824-16b04daaee9b', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.853+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3f6087ff-301b-44c0-a892-88e5523048dc', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.858+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Creation complete after 0s [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('03e0d14e-d50e-4a91-a845-dd5140cea0b0', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:06.862+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0f701ad8-b85b-4515-aa10-426a9dd532a9', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.559+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7dcd63a2-1e80-4927-adca-1b19e6e3f7d4', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.57+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 4 added, 0 changed, 0 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('32909e4c-0dd2-43c2-b231-01314ae83bd8', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:07.578+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ca4907f9-2158-4254-9a70-7366407b0789', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-02 13:06:08.667+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ec5ec4b3-49a7-4400-9085-3dadca04e656', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.934+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('97069c13-0085-41f7-b515-144630e3d10c', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.945+02', 'provisioner_daemon', 'info', 'Adding README.md...', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bc2dc6d3-e103-454e-a0ea-28e3ee516811', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.951+02', 'provisioner_daemon', 'info', 'Parse parameters', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('14bc3811-9fca-427e-8bca-bdf4124c8c42', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:52.965+02', 'provisioner_daemon', 'info', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f38628b1-2b19-4221-9a82-721b4064245a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.058+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bae7a730-6853-41bf-aec3-df57021ef685', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.062+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2cd32c99-b560-4029-9cfe-eddbb7b169b6', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.066+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('618f2905-ded6-4342-826b-230e3f1b07ac', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.069+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fcd5133c-02a9-45d5-98f8-343c28c192b8', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.072+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('edc4a28a-1a05-4181-b523-3b7866ed47d0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.214+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3abbd207-79d1-472e-b311-5d12cfa2adf0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.311+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('055d02e9-70a8-458a-b63f-c9bf055f61b4', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.371+02', 'provisioner', 'debug', 'Detecting persistent resources', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0d385c88-0c06-4cd1-b69b-23690fa3c6dc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.443+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('be40524d-3b27-402b-9253-9eb7afd8b3a7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.447+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('186eacc1-237e-43ea-bf17-747f20277e80', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.45+02', 'provisioner', 'debug', 'Detecting persistent resources', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('72fea3ac-e12c-4222-9a65-23b303fbde51', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.453+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a51ebdff-8f37-4a2a-9715-139db970054a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.457+02', 'provisioner', 'debug', 'Detecting persistent resources', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2ed720c7-8872-46f1-aff2-d637b8ba8f47', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.462+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('72d48510-300f-4155-8ba7-7abeda40e411', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.466+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('234761af-f52a-4b87-9c91-80708bfb57df', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.469+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c1f61684-7229-459f-87d3-52f548675d1e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.471+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4f76df82-b848-4225-82c1-5e8787258b24', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.475+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('20510fda-a6a1-4999-95db-cc3fb4458f5a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.478+02', 'provisioner', 'debug', 'Detecting persistent resources', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('577517b0-be37-4fac-b9c8-a91840bfdf13', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.481+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('eda778eb-66b5-436a-a576-e6793f41b04b', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.484+02', 'provisioner', 'debug', 'Detecting persistent resources', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6ba43a9-188a-479c-8200-9dc1771558d3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.486+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7341e996-a19b-4a5a-a969-f12137c06c99', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.49+02', 'provisioner', 'debug', 'Detecting persistent resources', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3618eb39-3cf5-421c-89be-5f5d8fb18050', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.493+02', 'provisioner', 'debug', 'Detecting persistent resources', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0c493997-4fea-4e34-9427-66a80b29713f', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.498+02', 'provisioner', 'debug', 'Detecting persistent resources', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8f0eedec-76e5-45a7-96d6-0f6053dd2b7a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.501+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3bcac134-e265-4cb4-b222-42239602b230', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.504+02', 'provisioner', 'debug', 'Detecting persistent resources', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5baf397f-d719-49e7-9c64-5868ab6867d3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.507+02', 'provisioner', 'debug', 'Detecting persistent resources', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('11f29f58-7699-4825-9f19-044991e2bd72', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.509+02', 'provisioner', 'debug', 'Detecting persistent resources', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4290e889-0524-4a44-a863-50ca5c995dd6', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.512+02', 'provisioner', 'debug', 'Detecting persistent resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8673bef9-01b6-4012-85f0-405abd2bc018', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.514+02', 'provisioner', 'debug', 'Detecting persistent resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e61d6c01-774f-466f-80c5-d48d9d650659', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:53.517+02', 'provisioner', 'info', 'Detecting persistent resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5f1cb4d0-6333-40c9-a4f6-35a33707850e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.242+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9349299d-5e9f-4392-a0a9-bf57b81a486e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.247+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('03d69f7f-1ba0-4ff3-b165-57644ae74ea0', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.253+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=0c2a9b56-6788-426a-b51f-d1020b2f946c]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2b4f8569-69f4-484a-a0ba-274e7c508460', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.257+02', 'provisioner', 'info', 'Detecting persistent resources', 'data.coder_workspace.me: Refresh complete after 0s [id=f029c2d7-f293-4d65-95e5-fbbec8069da5]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2d426394-18e9-4eff-9b3f-7f8ca8212a0e', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.284+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4f281678-1ff4-4a32-83bd-0357f02279dc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.29+02', 'provisioner', 'info', 'Detecting persistent resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e0dde379-7983-41fc-ae3f-125adbb7e0a4', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.294+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1359a82f-17d0-46c4-908b-a6623aec532a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.299+02', 'provisioner', 'info', 'Detecting persistent resources', 'docker_container.workspace[0]: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('46b1948d-b07b-480f-9cb5-94dc56c76414', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:54.303+02', 'provisioner', 'info', 'Detecting persistent resources', 'Plan: 4 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c4a04254-ac4e-49b1-9922-18f00beb81f3', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.086+02', 'provisioner_daemon', 'info', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8ac6dfa1-dd6e-48c4-95c9-9d43a3f81fd1', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.169+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e833f596-ecf0-42aa-a4ab-544becc93b2f', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.173+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('53d42646-4d25-4f0a-a90a-2e7344952e04', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.306+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e58bd9b1-03dd-4650-a530-7264f1b77256', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.311+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('13f5bbd4-c399-4896-ad60-3a180a814ee9', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.314+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of coder/coder from the dependency lock file') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4d5547c9-22e3-4dc2-a13d-ce958cad5d05', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.55+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Reusing previous version of kreuzwerker/docker from the dependency lock file') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fc1acf12-6058-44c9-a7a3-18ec67538272', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.77+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed coder/coder v0.5.0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('04728b40-6184-41fc-833c-e1b1299ce625', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.854+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '- Using previously-installed kreuzwerker/docker v2.20.3') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('501c8bae-4726-4365-9b94-0e20063d94c5', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.858+02', 'provisioner', 'debug', 'Detecting ephemeral resources', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e420f075-e982-4515-b45a-1b6c5aaf79cd', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.863+02', 'provisioner', 'debug', 'Detecting ephemeral resources', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6af54ded-f9ed-4bcd-ab31-f5b7d451cbc7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:55.924+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6c0ffa8a-47ab-4d83-bcc3-63bd9dff7c51', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.669+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aa2b789b-f85e-4131-8a31-a8125e4ebaf7', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.675+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bf3681f0-adaf-4466-ae0a-4251769947fc', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.678+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_workspace.me: Refresh complete after 0s [id=a56ece0a-5fd0-4377-beb4-b863a7b6f643]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('867acd6d-6459-4be3-8b7a-09c912f9a229', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.681+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'data.coder_provisioner.me: Refresh complete after 0s [id=799aeb19-6a6c-4127-bc37-02bd4766cf5f]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5cd3d492-6611-4944-b0b4-87e27dab9376', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.704+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_agent.main: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('bd8ba462-89c9-4a1d-af5a-35d245fe8fc1', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.708+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'coder_app.code-server: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f50d9387-c97e-47a3-9958-2330462d7534', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.712+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'docker_volume.home_volume: Plan to create') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('44b9aa93-fa16-47f6-92c5-a3e8f6ae2d5b', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:56.716+02', 'provisioner', 'info', 'Detecting ephemeral resources', 'Plan: 3 to add, 0 to change, 0 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e267601b-0bab-4dcd-8cf2-01315983e35a', 'f042af17-e3a2-4194-af67-e416302bc860', '2022-11-02 13:07:57.534+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c2f685fa-b49e-46b0-8b49-3499a6c86c54', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.441+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f0b836ba-dd49-42d6-9d2f-c765f676cef7', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.445+02', 'provisioner_daemon', 'info', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('365e78dd-d03f-413b-9ec2-c254106fc5d4', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.535+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('90b6d5a8-e690-4475-b05e-2c7d599bdb90', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.539+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f7024b37-d4dd-4c4a-9c64-aecff11a47ef', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.544+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('74bf20aa-8f5f-475a-991a-4baa61ac894a', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.547+02', 'provisioner', 'debug', 'Starting workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c9ef259a-f267-4afb-b401-c247ac3dd3f5', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.55+02', 'provisioner', 'debug', 'Starting workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6c6de8e1-0bed-4636-8966-502b7adcf530', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.705+02', 'provisioner', 'debug', 'Starting workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a017a4e0-cbbf-4ea4-bf91-9936ead5d649', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.771+02', 'provisioner', 'debug', 'Starting workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7f2577aa-cab9-4e9c-82b1-e2b68f1de520', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.845+02', 'provisioner', 'debug', 'Starting workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5bbb9cf4-69a1-4e9f-87fb-7ddd6bf41323', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.901+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('49732ed2-1526-410a-844a-27fd51afa8b8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.906+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3ca5f41e-936e-41cf-8ec6-9a322d73102d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.91+02', 'provisioner', 'debug', 'Starting workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a11b20a0-5b00-4323-a949-356013d91119', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.913+02', 'provisioner', 'debug', 'Starting workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8a2e242c-d977-4677-8f6c-e0d264d834e8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.915+02', 'provisioner', 'debug', 'Starting workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ad719a38-a50b-4623-a0e1-a47e04d7827f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.918+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2916ea33-9304-42c9-ae7d-2b965c202eb0', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.923+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('776a479c-8cfa-419d-87c6-9c3ad8a3bd09', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.926+02', 'provisioner', 'debug', 'Starting workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b3a16e4b-86a2-4d4c-8cf4-dc3488c636b9', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.929+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1756b015-3863-46a0-8ce1-756a3db0ab0d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.932+02', 'provisioner', 'debug', 'Starting workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dfff1eea-4022-4685-8fe9-1dedf12b1bfa', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.935+02', 'provisioner', 'debug', 'Starting workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8bfdd0f9-59f8-452b-a5f0-94cf72ee53dd', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.938+02', 'provisioner', 'debug', 'Starting workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('81e3e47b-bcdc-42f8-9c23-4e3224657961', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.941+02', 'provisioner', 'debug', 'Starting workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0dd5456e-727f-4820-801d-a73196a99db5', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.944+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d1017c48-e1e1-4f6b-85b7-c432ec0c848c', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.947+02', 'provisioner', 'debug', 'Starting workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('32f30546-bb7a-4b25-893a-7740d5028720', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.95+02', 'provisioner', 'debug', 'Starting workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0a9cbe99-0bfc-45a2-a714-91c0fab6959f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.953+02', 'provisioner', 'debug', 'Starting workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('884b86f8-d32c-4961-a6d2-b74cecc9ef94', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.956+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('07a49cf9-2088-4977-930e-d7019c7fadd8', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.959+02', 'provisioner', 'debug', 'Starting workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0104d747-0c30-40ea-bc37-99d1c5d828b1', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.962+02', 'provisioner', 'debug', 'Starting workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('14d0e06a-920e-48f7-862f-21b26533c2d4', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.964+02', 'provisioner', 'debug', 'Starting workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9327e992-19d6-485f-a783-f069195b39bb', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.966+02', 'provisioner', 'debug', 'Starting workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e566f0e1-5000-4328-bb26-503933a6cf58', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.969+02', 'provisioner', 'debug', 'Starting workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a622c794-e3de-4d05-ad21-7d15206a8134', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:07.972+02', 'provisioner', 'info', 'Starting workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2c3e911a-0120-4ef9-8bf1-ae38b335f4c7', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.685+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1700402d-473b-4545-ac26-e8c2474ae61e', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.69+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('677e7e30-e7b0-414d-950c-691ece713410', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.698+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=ad27e546-76e2-44a1-befc-04e736c7d136]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('de33d989-b4a0-4aca-bdcc-2f709c89badf', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.702+02', 'provisioner', 'info', 'Starting workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ae71133b-83ea-4594-938a-619b65a72dbc', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.708+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refreshing state... [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2c4d3f77-57ab-444e-bcf2-47c0d334071d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.713+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Refresh complete [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('08e41e5a-92cc-4593-9a76-fe7aedb89136', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.716+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refreshing state... [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6e2db47-d7ba-421b-bb19-8efb34e15041', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.718+02', 'provisioner', 'info', 'Starting workspace', 'coder_app.code-server: Refresh complete [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('da66adc5-7955-4efa-ae4e-921d89a0a905', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.721+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('86b81dc3-345e-4032-91ca-e179d2f68426', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.724+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c16e6dd4-8590-4267-8d86-86469c58bd38', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.727+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Refreshing state... [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f029d62b-fa15-41dd-a55b-56de56aa9d2d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.845+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Refresh complete [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d420d06e-a470-491f-b77a-76e9efcfd885', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.88+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f29b2f5a-5b30-4450-808d-57633ec9eee1', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.884+02', 'provisioner', 'info', 'Starting workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('dd638547-02bd-4f94-8e3a-706d8c4bbb4d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.887+02', 'provisioner', 'info', 'Starting workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9733a541-f554-45fc-b9e6-8449d0a7268d', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.891+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Plan to replace') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1442786e-4ac2-4a31-bf01-62f71ee1c58f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:08.895+02', 'provisioner', 'info', 'Starting workspace', 'Plan: 1 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b73e9a9c-2a80-4edc-b9c9-caed1f8fb76f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.092+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Destroying... [id=eed96dcc159829b9a91ee13a2106b3f8598896f99d7142765276914e628e8109]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('26bb15bd-55f5-40af-bb5f-68276cdc547c', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.315+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e8dd9645-1e6c-4620-a2b4-db13e3591672', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.334+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creating...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('27a857d3-fae3-4e7b-92f3-ba66651415fd', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.838+02', 'provisioner', 'info', 'Starting workspace', 'docker_container.workspace[0]: Creation complete after 1s [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6b755e4e-7e2e-407d-874e-2b9d94636d1f', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.846+02', 'provisioner', 'info', 'Starting workspace', 'Apply complete! Resources: 1 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d7858aaa-6fa7-4673-9ff2-1b2347088c64', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:09.853+02', 'provisioner', 'info', 'Starting workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('43b1ff4e-b1d2-45bf-aced-0d209ae20ae6', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-02 13:08:10.807+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('567776bf-1821-4c52-80ed-3fce709d0c85', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.94+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('36b8be4a-a30c-4de0-8896-14406d6cfdb6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:51.949+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('80f21094-54a2-4756-a837-25df3ddc10bd', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.042+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e4a9be07-5e4a-402c-a32c-5d2be759063f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.047+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9b30655a-31d0-4cb5-a2d1-c55de3a4f7db', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.051+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b66c4596-da28-4f0c-857d-d22ec01a659e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.054+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f78aef35-c5b0-4ca1-bba3-1ed73c00d2f5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.057+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5128de3f-c94a-498d-aac0-690fb3a3256c', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.203+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cb707f76-a1ce-4411-998f-492ab315f9de', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.276+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b6ba27e3-22c5-4585-ab89-9a122daa2ed2', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.352+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('155e3a4d-e37a-4443-9609-94ea25793182', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.407+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('803c0af2-6bee-4dd5-bca7-088ccef48d0d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.411+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b045cf9c-4a31-42df-a157-36799cc1505e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.415+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('96af3253-66fd-4e6f-8a02-9aaa2ed840e1', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.419+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a577318f-cd80-46e2-9dc2-e96ddb958fb6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.423+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('918e8d10-6929-43ff-a417-e835a05593b5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.426+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('82a34d3a-ff5d-42a4-9734-c369e56ce5c8', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.428+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f7cb10b8-9c51-4f23-afbe-33b20842feef', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.434+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('77119d73-aa08-4d6a-b2a9-5a876cc38f10', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.438+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('77ba3339-32b2-4c0c-9dab-347a75457e1b', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.44+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('378e1d98-148e-4ba4-861e-9eba8d7f1f79', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.444+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('305ed411-809f-47e8-b5fc-36ab80d51862', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.446+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('b2b3030f-f923-4c11-a0b5-3f88673f174c', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.45+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('72495cac-fb10-4a5b-ba56-e5720fdcbe80', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.452+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('aa63292e-da72-4ad2-837b-4b7d09ca8352', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.455+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7d402a33-e901-481a-a4b0-7975bc710884', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.457+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('26f48c94-98cd-4ab4-a7c9-92b51c559e50', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.46+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('425de025-c374-4359-bb84-36d08b1f045f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.463+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f0a06046-0ed0-4d43-8608-8ede7c923a9f', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.466+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c8eae175-6b93-44d7-86d9-acd10e5d9257', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.469+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('a186dc9b-c58c-48ed-90e8-5ff3d4049dac', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.471+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f47f6907-04cd-4ada-b7df-7bb27032d429', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.474+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('237bad3c-59c9-4d7e-9860-922c85106edb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.476+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0aeca511-4a7b-4151-a806-525e03e842db', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:52.479+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('66abfda2-7009-4d13-bb84-24ab857b3404', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.226+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e1073aaf-e53a-4e28-a771-66a273731128', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.231+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d388445e-b43e-4f8f-a866-66639edcb087', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.236+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=b90547be-8870-4d68-8184-e8b2242b7c01]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1726c68b-dad7-4cbc-bf24-6a6578f50edd', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.244+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=58ea2d09-993b-4754-8c7d-0c0ec944e2ee]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0331dcb4-8497-4b49-b823-be547e2fb19e', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.248+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('668a90d0-12e9-4aea-af6f-5c50324ebb1d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.252+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('656ab85b-4184-494e-8a57-891b3343bacb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.254+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=6137599d-4ad6-4e58-b0fa-a3d1a88fa5a9]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e521fb3e-c3d3-4e07-b7d5-d23a14735f3d', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.257+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-test1-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8b6e20ee-cd76-44f0-a361-24e3b91ca966', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.261+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7a5cb85d-85d5-4e4d-9bac-6b71b17a31a7', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.263+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=3a585bc7-75e6-408e-b0bc-dc64e4d3be0a]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('61a50656-1299-4920-8cfe-a3d496fb7601', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.266+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c748eb20-3d36-4dd1-9d67-94f187845e60', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.377+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('11300863-799e-4a8d-9d4e-e816fe59f8d0', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.388+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('148f401b-202f-495d-a00d-3edaf2d98b54', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.392+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('518cc0ce-b6fa-46af-be96-7eb0745832c9', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.395+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('abdc6fea-3ecd-444c-b0b9-a0c5c7b04bd5', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.399+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('098266ee-37b3-423b-a915-1eebed4a9382', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.51+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=86d859b12b6519160d53b99d4f0155bf6aeeefbd33d88fe93e2eecef22eb65de]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1dd3c1b5-aee2-4c3c-a43b-98abf577daee', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.752+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 0s') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('785540dd-ba37-4111-900a-e63fe74c80c3', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.763+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('1dd9d93f-3497-4fd4-acd5-676807a332a6', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:53.769+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ae1db4e6-6f61-4e96-86a4-90869cdfd4eb', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-02 13:09:54.754+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('5ff779e3-9dd5-48a0-a5f3-a7a80d029807', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.44+02', 'provisioner_daemon', 'info', 'Setting up', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('59a25c28-c558-4571-b853-bee95d5fb22b', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.444+02', 'provisioner_daemon', 'info', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('9a497a9b-63aa-4424-bcc8-92ffc1dd1259', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.534+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('672df058-dbd9-4eb2-ab8e-21033b6104c7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.538+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing the backend...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2c9dccb2-41d0-40bf-bcc4-04d77075474f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.542+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('4168300f-5094-4235-91b4-6b3b4777f3ef', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.546+02', 'provisioner', 'debug', 'Stopping workspace', 'Initializing provider plugins...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('12c537a5-d863-4fe3-8b04-9ba93d749a64', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.55+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding coder/coder versions matching "0.5.0"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e9be6d15-d900-47a1-a2af-9f1f51b3644c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.156+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0a588339-f93c-4a54-9655-59e4fd30f49e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:42.821+02', 'provisioner', 'debug', 'Stopping workspace', '- Finding kreuzwerker/docker versions matching "~> 2.20.2"...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0b21faa5-29a9-4b78-8a5b-2afd05d250eb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.027+02', 'provisioner', 'debug', 'Stopping workspace', '- Using coder/coder v0.5.0 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('47176b70-e029-4b88-9ba7-4b19781da315', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.086+02', 'provisioner', 'debug', 'Stopping workspace', '- Using kreuzwerker/docker v2.20.3 from the shared cache directory') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('eb7b92a8-fdcc-475b-88da-8b2e1c4c7a57', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.16+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has created a lock file .terraform.lock.hcl to record the provider') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c7b928c0-f6fb-4d4d-836a-8ff389bf8aad', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.163+02', 'provisioner', 'debug', 'Stopping workspace', 'selections it made above. Include this file in your version control repository') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('ed8116ca-5692-48ba-bc64-359bec1f54a6', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.166+02', 'provisioner', 'debug', 'Stopping workspace', 'so that Terraform can guarantee to make the same selections by default when') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('19e91c08-0342-4c21-8a23-8690b567a3bd', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.168+02', 'provisioner', 'debug', 'Stopping workspace', 'you run "terraform init" in the future.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c1144133-37fa-4715-9e1d-4301287ef9e7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.171+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f454b157-5e4d-45ac-83a6-aaceb242af1c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.173+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('78ef1dfb-8de7-4c09-9775-9ac2b0c8fccb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.176+02', 'provisioner', 'debug', 'Stopping workspace', 'Warning: Incomplete lock file information for providers') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e17bda0e-e339-4f28-87ad-af15ff5103c3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.179+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6ae8b6b5-7817-414d-bf79-dd6f78a9db26', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.182+02', 'provisioner', 'debug', 'Stopping workspace', 'Due to your customized provider installation methods, Terraform was forced to') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e3e90d48-336f-4d41-a90b-cc569633e5d4', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.185+02', 'provisioner', 'debug', 'Stopping workspace', 'calculate lock file checksums locally for the following providers:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('615327b8-8a02-4afc-a6be-a4e2d0758ebf', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.188+02', 'provisioner', 'debug', 'Stopping workspace', ' - coder/coder') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c30bc373-2667-42e7-aed5-bac2907c1813', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.19+02', 'provisioner', 'debug', 'Stopping workspace', ' - kreuzwerker/docker') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c7a73bc4-1d99-4230-89c5-be15c70db5e3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.195+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fa365813-ac49-4cb7-aaeb-a9344156b73a', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.198+02', 'provisioner', 'debug', 'Stopping workspace', 'The current .terraform.lock.hcl file only includes checksums for linux_amd64,') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('e501ee90-28bd-4d20-ad99-12a09fe8287e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.201+02', 'provisioner', 'debug', 'Stopping workspace', 'so Terraform running on another platform will fail to install these') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('f4708ad7-013b-4149-ba57-8d30f8198142', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.203+02', 'provisioner', 'debug', 'Stopping workspace', 'providers.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fa4f0229-187c-4654-aff8-6cee50c6720e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.206+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0ccf37bd-877e-464c-9931-97564752f445', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.21+02', 'provisioner', 'debug', 'Stopping workspace', 'To calculate additional checksums for another platform, run:') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('64242d19-9374-45e3-a46c-17833470e20d', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.212+02', 'provisioner', 'debug', 'Stopping workspace', ' terraform providers lock -platform=linux_amd64') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('027cb177-34fd-4137-91a8-f0b63c0ae8f1', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.216+02', 'provisioner', 'debug', 'Stopping workspace', '(where linux_amd64 is the platform to generate)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('fd28c560-d002-4f4d-947e-75a9dd98ae71', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.218+02', 'provisioner', 'debug', 'Stopping workspace', '') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('35ad66c7-fd53-49a8-8a08-993abb9dc471', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.22+02', 'provisioner', 'debug', 'Stopping workspace', 'Terraform has been successfully initialized!') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('2d4d5e8c-2eea-42ba-8aea-2f250af13f8f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.222+02', 'provisioner', 'info', 'Stopping workspace', 'Terraform 1.2.8') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('cf9cb3ab-8af9-4b34-8500-02979c138c4e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.952+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('8537a20e-b447-423e-8f68-24b53582c88c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.957+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refreshing...') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('989116f5-b114-4df4-9b4f-62417b12cdd5', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.962+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_workspace.me: Refresh complete after 0s [id=2d72d32e-3021-4843-b582-d962fee897e2]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('33440676-d562-4284-8496-e9be767976de', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.965+02', 'provisioner', 'info', 'Stopping workspace', 'data.coder_provisioner.me: Refresh complete after 0s [id=a9bb9c27-a53b-4524-821b-64d3bf2da47c]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('3ea2e134-018b-4291-b9ca-d7db05a6a127', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.969+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refreshing state... [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('45d2a1e5-73a5-423f-a0bb-43a4fc49f457', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.972+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refreshing state... [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('71910cc2-83f8-4507-856b-7a95de0ec6f8', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.975+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Refresh complete [id=coder-oauthuser1-scheduled-root]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('96f27f81-0b5c-49b0-9b69-18ab9bd71d74', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.978+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Refresh complete [id=8841874d-0c5c-49ab-ab10-2c6b8e509433]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('6f7ec6ad-1f57-44b9-b1d3-d23e26ceca6e', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.982+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refreshing state... [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('13d86e02-e7ab-4390-a80b-dadee7fa8146', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.985+02', 'provisioner', 'info', 'Stopping workspace', 'coder_app.code-server: Refresh complete [id=86ac90e2-cc81-41dc-a16e-eeca54c8a3c7]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('214603da-529f-42e5-964d-77e91c92940f', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:43.99+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refreshing state... [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('52409cc8-c6ce-4d8d-8c53-dc3e3734ae17', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.11+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Refresh complete [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('957979e1-7611-49f0-8756-d7e2a4eaffee', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.125+02', 'provisioner', 'info', 'Stopping workspace', 'coder_agent.main: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('d364a7e6-249c-4fd9-a041-3854b03388f9', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.13+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('27daf314-7f00-435d-8fad-f037882392bb', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.134+02', 'provisioner', 'info', 'Stopping workspace', 'docker_volume.home_volume: Drift detected (update)') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('736b42be-7b2a-4f91-8676-37e12f2ca6f3', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.137+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Plan to delete') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('0bcd3cbc-916b-417e-96c2-afb5e83c9f3c', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.14+02', 'provisioner', 'info', 'Stopping workspace', 'Plan: 0 to add, 0 to change, 1 to destroy.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('deba29f1-462d-4e70-a6e7-ca2cb8ac5b70', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.257+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destroying... [id=031ada2ead4766de08331f05ed2e5f0d674166517757edf1b924886b1359cab5]') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('118af4d6-67f3-4906-9585-4b4f1cdefc57', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.579+02', 'provisioner', 'info', 'Stopping workspace', 'docker_container.workspace[0]: Destruction complete after 1s') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('c257a4c2-83f7-45b4-ae42-652a93547b51', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.592+02', 'provisioner', 'info', 'Stopping workspace', 'Apply complete! Resources: 0 added, 0 changed, 1 destroyed.') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('825b93e0-a4fb-4807-9570-2190eec03ba7', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:44.595+02', 'provisioner', 'info', 'Stopping workspace', 'Outputs: 0') ON CONFLICT DO NOTHING; +INSERT INTO provisioner_job_logs VALUES ('7ebd786a-4c6b-4d81-b66e-c70912ac2036', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-02 13:10:45.612+02', 'provisioner_daemon', 'info', 'Cleaning Up', '') ON CONFLICT DO NOTHING; -- -- Data for Name: schema_migrations; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.schema_migrations VALUES (22, false) ON CONFLICT DO NOTHING; +INSERT INTO schema_migrations VALUES (22, false) ON CONFLICT DO NOTHING; -- -- Data for Name: templates; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.templates VALUES ('4cc1f466-f326-477e-8762-9d0c6781fc56', '2022-11-02 13:03:56.718393+02', '2022-11-02 13:03:56.718393+02', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', false, 'docker-code-server', 'terraform', '4e681a60-83da-42c2-902e-6535376ebb77', '', 604800000000000, 3600000000000, '30095c71-380b-457a-8995-97b8ee6e5307') ON CONFLICT DO NOTHING; +INSERT INTO templates VALUES ('4cc1f466-f326-477e-8762-9d0c6781fc56', '2022-11-02 13:03:56.718393+02', '2022-11-02 13:03:56.718393+02', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', false, 'docker-code-server', 'terraform', '4e681a60-83da-42c2-902e-6535376ebb77', '', 604800000000000, 3600000000000, '30095c71-380b-457a-8995-97b8ee6e5307') ON CONFLICT DO NOTHING; -- -- Data for Name: template_versions; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.template_versions VALUES ('920baba5-4c64-4686-8b7d-d1bef5683eae', '4cc1f466-f326-477e-8762-9d0c6781fc56', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:03:31.676657+02', '0001-01-01 01:39:49+01:39:49', 'trusting_lamport1', '--- +INSERT INTO template_versions VALUES ('920baba5-4c64-4686-8b7d-d1bef5683eae', '4cc1f466-f326-477e-8762-9d0c6781fc56', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:03:31.676657+02', '0001-01-01 01:39:49+01:39:49', 'trusting_lamport1', '--- name: Develop code-server in Docker description: Run code-server in a Docker development environment tags: [local, docker] @@ -792,7 +792,7 @@ This template has the following predefined parameters: - `docker_arch`: Architecture of the host running Docker. This can be `amd64`, `arm64`, or `armv7`. ', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0') ON CONFLICT DO NOTHING; -INSERT INTO public.template_versions VALUES ('4e681a60-83da-42c2-902e-6535376ebb77', '4cc1f466-f326-477e-8762-9d0c6781fc56', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:07:52.490041+02', '2022-11-02 13:07:52.950734+02', 'thirsty_williamson6', '--- +INSERT INTO template_versions VALUES ('4e681a60-83da-42c2-902e-6535376ebb77', '4cc1f466-f326-477e-8762-9d0c6781fc56', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:07:52.490041+02', '2022-11-02 13:07:52.950734+02', 'thirsty_williamson6', '--- name: Develop code-server in Docker description: Run code-server in a Docker development environment tags: [local, docker] @@ -824,85 +824,85 @@ This template has the following predefined parameters: -- Data for Name: workspace_resources; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.workspace_resources VALUES ('0ff953c0-92a6-4fe6-a415-eb0139a36ad1', '2022-11-02 13:03:45.043403+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('82d290df-0aa7-4514-9db8-e4e573442c6e', '2022-11-02 13:03:45.050988+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('1188c596-990b-4754-9e36-aaa013b9ea9a', '2022-11-02 13:03:45.053839+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('de5e9eeb-f2d1-4fae-a0f4-3966f1a15554', '2022-11-02 13:04:14.068501+02', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('46b830e7-0b13-44f4-90ef-0e29e8f948e3', '2022-11-02 13:04:14.074875+02', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('e1dde2c9-bfff-485b-9b85-9ce53a59b3ee', '2022-11-02 13:04:22.824216+02', '52a90399-a53d-4644-be3c-47ee18a5716e', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('9f9b17b8-a7eb-491b-adee-4224f1dca047', '2022-11-02 13:04:22.826459+02', '52a90399-a53d-4644-be3c-47ee18a5716e', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('d14ad764-3385-4276-8201-0d70935e4e50', '2022-11-02 13:04:51.507424+02', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('578765bb-bf7c-49b6-9d3e-5d089d68180d', '2022-11-02 13:04:58.764535+02', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('c192783d-bbdf-4a52-bd30-3da3321da46b', '2022-11-02 13:04:58.76647+02', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('93609df1-39ab-46e8-8fba-4d207cdbe461', '2022-11-02 13:05:43.879156+02', '4de9c41c-eb10-435a-8742-e8725e926a9d', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('03e8a6e1-4ec2-4115-9595-b0b6a0cbba82', '2022-11-02 13:05:43.881237+02', '4de9c41c-eb10-435a-8742-e8725e926a9d', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('e670ea5b-8a4e-4e5f-92e7-a46901474f26', '2022-11-02 13:06:08.661894+02', '424a58cb-61d6-4627-9907-613c396c4a38', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('4888064d-263c-4022-abdb-8816ac433c36', '2022-11-02 13:06:08.662461+02', '424a58cb-61d6-4627-9907-613c396c4a38', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('f8e41551-2add-4243-b174-ba5525ef3468', '2022-11-02 13:07:57.523213+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('0405ee7f-ac1f-4ef3-839b-56476f9fc724', '2022-11-02 13:07:57.529989+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('566883fd-d61f-427a-bbc7-16566923e613', '2022-11-02 13:07:57.531917+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('35a7cc19-0816-40bd-930b-1afe28dfc656', '2022-11-02 13:08:10.803507+02', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('63d5f2c3-232f-4b83-b7c1-c148b773df23', '2022-11-02 13:08:10.80546+02', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('82efa58b-dafc-4cbd-b3d5-47229e151720', '2022-11-02 13:09:54.752163+02', '52874f66-89cc-4e6b-8066-80ba21ad9e57', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_resources VALUES ('8090fa9e-bc58-4dc4-ab96-053ea4e6fb62', '2022-11-02 13:10:45.608721+02', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('0ff953c0-92a6-4fe6-a415-eb0139a36ad1', '2022-11-02 13:03:45.043403+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('82d290df-0aa7-4514-9db8-e4e573442c6e', '2022-11-02 13:03:45.050988+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('1188c596-990b-4754-9e36-aaa013b9ea9a', '2022-11-02 13:03:45.053839+02', 'f1392ef5-2502-4474-9f0c-98b5cad6edf0', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('de5e9eeb-f2d1-4fae-a0f4-3966f1a15554', '2022-11-02 13:04:14.068501+02', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('46b830e7-0b13-44f4-90ef-0e29e8f948e3', '2022-11-02 13:04:14.074875+02', '3013ee6d-3c8f-4dcf-8271-01fd1e88aba6', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('e1dde2c9-bfff-485b-9b85-9ce53a59b3ee', '2022-11-02 13:04:22.824216+02', '52a90399-a53d-4644-be3c-47ee18a5716e', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('9f9b17b8-a7eb-491b-adee-4224f1dca047', '2022-11-02 13:04:22.826459+02', '52a90399-a53d-4644-be3c-47ee18a5716e', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('d14ad764-3385-4276-8201-0d70935e4e50', '2022-11-02 13:04:51.507424+02', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('578765bb-bf7c-49b6-9d3e-5d089d68180d', '2022-11-02 13:04:58.764535+02', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('c192783d-bbdf-4a52-bd30-3da3321da46b', '2022-11-02 13:04:58.76647+02', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('93609df1-39ab-46e8-8fba-4d207cdbe461', '2022-11-02 13:05:43.879156+02', '4de9c41c-eb10-435a-8742-e8725e926a9d', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('03e8a6e1-4ec2-4115-9595-b0b6a0cbba82', '2022-11-02 13:05:43.881237+02', '4de9c41c-eb10-435a-8742-e8725e926a9d', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('e670ea5b-8a4e-4e5f-92e7-a46901474f26', '2022-11-02 13:06:08.661894+02', '424a58cb-61d6-4627-9907-613c396c4a38', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('4888064d-263c-4022-abdb-8816ac433c36', '2022-11-02 13:06:08.662461+02', '424a58cb-61d6-4627-9907-613c396c4a38', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('f8e41551-2add-4243-b174-ba5525ef3468', '2022-11-02 13:07:57.523213+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('0405ee7f-ac1f-4ef3-839b-56476f9fc724', '2022-11-02 13:07:57.529989+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('566883fd-d61f-427a-bbc7-16566923e613', '2022-11-02 13:07:57.531917+02', 'f042af17-e3a2-4194-af67-e416302bc860', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('35a7cc19-0816-40bd-930b-1afe28dfc656', '2022-11-02 13:08:10.803507+02', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', 'start', 'docker_container', 'workspace') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('63d5f2c3-232f-4b83-b7c1-c148b773df23', '2022-11-02 13:08:10.80546+02', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', 'start', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('82efa58b-dafc-4cbd-b3d5-47229e151720', '2022-11-02 13:09:54.752163+02', '52874f66-89cc-4e6b-8066-80ba21ad9e57', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; +INSERT INTO workspace_resources VALUES ('8090fa9e-bc58-4dc4-ab96-053ea4e6fb62', '2022-11-02 13:10:45.608721+02', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', 'stop', 'docker_volume', 'home_volume') ON CONFLICT DO NOTHING; -- -- Data for Name: workspace_agents; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.workspace_agents VALUES ('45e89705-e09d-4850-bcec-f9a937f5d78d', '2022-11-02 13:03:45.046432+02', '2022-11-02 13:03:45.046432+02', 'main', NULL, NULL, NULL, '0ff953c0-92a6-4fe6-a415-eb0139a36ad1', 'ffc107ef-7ded-4d80-b1a9-0c1d0bf7ccbf', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "default", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "default", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('a90934b3-34da-400a-a583-fa4dcb3b4668', '2022-11-02 13:04:14.070745+02', '2022-11-02 13:04:14.070745+02', 'main', NULL, NULL, NULL, 'de5e9eeb-f2d1-4fae-a0f4-3966f1a15554', '7703f4f1-210d-4c8f-a298-5803661cd7a7', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('5f8e48e4-1304-45bd-b91a-ab12c8bfc20f', '2022-11-02 13:04:58.765211+02', '2022-11-02 13:04:58.765211+02', 'main', '2022-11-02 13:04:58.931953+02', '2022-11-02 13:11:08.372146+02', NULL, '578765bb-bf7c-49b6-9d3e-5d089d68180d', 'ea71c16a-cf93-4c45-a1fd-100fc034528f', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('8fa17bbd-c48c-44c7-91ae-d4acbc755fad', '2022-11-02 13:04:22.825169+02', '2022-11-02 13:04:22.825169+02', 'main', '2022-11-02 13:04:23.19467+02', '2022-11-02 13:04:50.199604+02', NULL, 'e1dde2c9-bfff-485b-9b85-9ce53a59b3ee', '769edba1-bfcf-46bf-a5e8-0f2533d54f71', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('ef095280-d76a-422d-812f-0991ad06f2de', '2022-11-02 13:07:57.525832+02', '2022-11-02 13:07:57.525832+02', 'main', NULL, NULL, NULL, 'f8e41551-2add-4243-b174-ba5525ef3468', '73b3a1d3-7f78-43d6-8c97-4ccb70bb5cc2', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "default", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "default", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('a000d66f-e24e-4d40-9d2c-ec3809da3a55', '2022-11-02 13:06:08.662927+02', '2022-11-02 13:06:08.662927+02', 'main', '2022-11-02 13:06:08.700926+02', '2022-11-02 13:10:41.705193+02', NULL, '4888064d-263c-4022-abdb-8816ac433c36', '90cc130e-9f39-410a-a574-741e397877c1', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('7bb646eb-7baa-4300-a580-addb3fe89529', '2022-11-02 13:08:10.804142+02', '2022-11-02 13:08:10.804142+02', 'main', '2022-11-02 13:08:10.813078+02', '2022-11-02 13:09:52.819083+02', NULL, '35a7cc19-0816-40bd-930b-1afe28dfc656', 'e82e7cf1-9cfc-4c47-b591-22439f6c00cc', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_agents VALUES ('7a1ce5f8-8d00-431c-ad1b-97a846512804', '2022-11-02 13:05:43.879791+02', '2022-11-02 13:05:43.879791+02', 'main', '2022-11-02 13:05:43.891545+02', '2022-11-02 13:08:07.898132+02', NULL, '93609df1-39ab-46e8-8fba-4d207cdbe461', 'c427d112-23d8-4634-994e-d65a79e718fc', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('45e89705-e09d-4850-bcec-f9a937f5d78d', '2022-11-02 13:03:45.046432+02', '2022-11-02 13:03:45.046432+02', 'main', NULL, NULL, NULL, '0ff953c0-92a6-4fe6-a415-eb0139a36ad1', 'ffc107ef-7ded-4d80-b1a9-0c1d0bf7ccbf', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "default", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "default", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('a90934b3-34da-400a-a583-fa4dcb3b4668', '2022-11-02 13:04:14.070745+02', '2022-11-02 13:04:14.070745+02', 'main', NULL, NULL, NULL, 'de5e9eeb-f2d1-4fae-a0f4-3966f1a15554', '7703f4f1-210d-4c8f-a298-5803661cd7a7', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('5f8e48e4-1304-45bd-b91a-ab12c8bfc20f', '2022-11-02 13:04:58.765211+02', '2022-11-02 13:04:58.765211+02', 'main', '2022-11-02 13:04:58.931953+02', '2022-11-02 13:11:08.372146+02', NULL, '578765bb-bf7c-49b6-9d3e-5d089d68180d', 'ea71c16a-cf93-4c45-a1fd-100fc034528f', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('8fa17bbd-c48c-44c7-91ae-d4acbc755fad', '2022-11-02 13:04:22.825169+02', '2022-11-02 13:04:22.825169+02', 'main', '2022-11-02 13:04:23.19467+02', '2022-11-02 13:04:50.199604+02', NULL, 'e1dde2c9-bfff-485b-9b85-9ce53a59b3ee', '769edba1-bfcf-46bf-a5e8-0f2533d54f71', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "admin", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "admin", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('ef095280-d76a-422d-812f-0991ad06f2de', '2022-11-02 13:07:57.525832+02', '2022-11-02 13:07:57.525832+02', 'main', NULL, NULL, NULL, 'f8e41551-2add-4243-b174-ba5525ef3468', '73b3a1d3-7f78-43d6-8c97-4ccb70bb5cc2', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "default", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "default", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('a000d66f-e24e-4d40-9d2c-ec3809da3a55', '2022-11-02 13:06:08.662927+02', '2022-11-02 13:06:08.662927+02', 'main', '2022-11-02 13:06:08.700926+02', '2022-11-02 13:10:41.705193+02', NULL, '4888064d-263c-4022-abdb-8816ac433c36', '90cc130e-9f39-410a-a574-741e397877c1', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('7bb646eb-7baa-4300-a580-addb3fe89529', '2022-11-02 13:08:10.804142+02', '2022-11-02 13:08:10.804142+02', 'main', '2022-11-02 13:08:10.813078+02', '2022-11-02 13:09:52.819083+02', NULL, '35a7cc19-0816-40bd-930b-1afe28dfc656', 'e82e7cf1-9cfc-4c47-b591-22439f6c00cc', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; +INSERT INTO workspace_agents VALUES ('7a1ce5f8-8d00-431c-ad1b-97a846512804', '2022-11-02 13:05:43.879791+02', '2022-11-02 13:05:43.879791+02', 'main', '2022-11-02 13:05:43.891545+02', '2022-11-02 13:08:07.898132+02', NULL, '93609df1-39ab-46e8-8fba-4d207cdbe461', 'c427d112-23d8-4634-994e-d65a79e718fc', NULL, 'amd64', '{"GIT_AUTHOR_NAME": "oauthuser1", "GIT_AUTHOR_EMAIL": "", "GIT_COMMITTER_NAME": "oauthuser1", "GIT_COMMITTER_EMAIL": ""}', 'linux', 'code-server --auth none', NULL, NULL, '') ON CONFLICT DO NOTHING; -- -- Data for Name: workspace_apps; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.workspace_apps VALUES ('36b65d0c-042b-4653-863a-655ee739861c', '2022-11-02 13:03:45.048584+02', '45e89705-e09d-4850-bcec-f9a937f5d78d', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('347909cf-e3a9-4548-a800-73b4d166305a', '2022-11-02 13:04:14.072762+02', 'a90934b3-34da-400a-a583-fa4dcb3b4668', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('a47965a2-0a25-4810-8cc9-d283c86ab34c', '2022-11-02 13:04:22.825963+02', '8fa17bbd-c48c-44c7-91ae-d4acbc755fad', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('6ee01bda-a857-413a-8755-93365a955ece', '2022-11-02 13:04:58.765877+02', '5f8e48e4-1304-45bd-b91a-ab12c8bfc20f', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('ed0b4a8b-9cb3-45f9-ac86-31038d192b66', '2022-11-02 13:05:43.8806+02', '7a1ce5f8-8d00-431c-ad1b-97a846512804', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('9a5bf95c-dc6d-4780-9a62-6cb5ffe8d2a6', '2022-11-02 13:06:08.663494+02', 'a000d66f-e24e-4d40-9d2c-ec3809da3a55', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('7e5670b0-0643-4622-a6f2-3986b39ee260', '2022-11-02 13:07:57.52769+02', 'ef095280-d76a-422d-812f-0991ad06f2de', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_apps VALUES ('69bbcdf0-c193-4e91-b998-8bfa97425d27', '2022-11-02 13:08:10.804861+02', '7bb646eb-7baa-4300-a580-addb3fe89529', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('36b65d0c-042b-4653-863a-655ee739861c', '2022-11-02 13:03:45.048584+02', '45e89705-e09d-4850-bcec-f9a937f5d78d', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('347909cf-e3a9-4548-a800-73b4d166305a', '2022-11-02 13:04:14.072762+02', 'a90934b3-34da-400a-a583-fa4dcb3b4668', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('a47965a2-0a25-4810-8cc9-d283c86ab34c', '2022-11-02 13:04:22.825963+02', '8fa17bbd-c48c-44c7-91ae-d4acbc755fad', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('6ee01bda-a857-413a-8755-93365a955ece', '2022-11-02 13:04:58.765877+02', '5f8e48e4-1304-45bd-b91a-ab12c8bfc20f', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('ed0b4a8b-9cb3-45f9-ac86-31038d192b66', '2022-11-02 13:05:43.8806+02', '7a1ce5f8-8d00-431c-ad1b-97a846512804', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('9a5bf95c-dc6d-4780-9a62-6cb5ffe8d2a6', '2022-11-02 13:06:08.663494+02', 'a000d66f-e24e-4d40-9d2c-ec3809da3a55', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('7e5670b0-0643-4622-a6f2-3986b39ee260', '2022-11-02 13:07:57.52769+02', 'ef095280-d76a-422d-812f-0991ad06f2de', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; +INSERT INTO workspace_apps VALUES ('69bbcdf0-c193-4e91-b998-8bfa97425d27', '2022-11-02 13:08:10.804861+02', '7bb646eb-7baa-4300-a580-addb3fe89529', 'code-server', '/icon/code.svg', NULL, 'http://localhost:8080/?folder=/home/coder', false) ON CONFLICT DO NOTHING; -- -- Data for Name: workspaces; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.workspaces VALUES ('3a9a1feb-e89d-457c-9d53-ac751b198ebe', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:19.044082+02', '30095c71-380b-457a-8995-97b8ee6e5307', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'my-workspace', 'CRON_TZ=UTC 0 9 * * MON-FRI', 28800000000000) ON CONFLICT DO NOTHING; -INSERT INTO public.workspaces VALUES ('b90547be-8870-4d68-8184-e8b2242b7c01', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:40.181124+02', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'test1', NULL, 604800000000000) ON CONFLICT DO NOTHING; -INSERT INTO public.workspaces VALUES ('2d72d32e-3021-4843-b582-d962fee897e2', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:03.554876+02', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'scheduled', 'CRON_TZ=Europe/Helsinki 30 09 * * *', 288000000000000) ON CONFLICT DO NOTHING; +INSERT INTO workspaces VALUES ('3a9a1feb-e89d-457c-9d53-ac751b198ebe', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:19.044082+02', '30095c71-380b-457a-8995-97b8ee6e5307', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'my-workspace', 'CRON_TZ=UTC 0 9 * * MON-FRI', 28800000000000) ON CONFLICT DO NOTHING; +INSERT INTO workspaces VALUES ('b90547be-8870-4d68-8184-e8b2242b7c01', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:40.181124+02', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'test1', NULL, 604800000000000) ON CONFLICT DO NOTHING; +INSERT INTO workspaces VALUES ('2d72d32e-3021-4843-b582-d962fee897e2', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:03.554876+02', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '4cc1f466-f326-477e-8762-9d0c6781fc56', false, 'scheduled', 'CRON_TZ=Europe/Helsinki 30 09 * * *', 288000000000000) ON CONFLICT DO NOTHING; -- -- Data for Name: workspace_builds; Type: TABLE DATA; Schema: public; Owner: coder -- -INSERT INTO public.workspace_builds VALUES ('a8c0b8c5-c9a8-4f33-93a4-8142e6858244', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:22.82111+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'wizardly_lumiere8', 1, 'start', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202231376363313761662d386262622d343736312d616433392d646136326164353132633233222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202237363965646261312d626663662d343662662d613565382d306632353333643534663731220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d37363965646261312d626663662d343662662d613565382d306632353333643534663731220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226964223a202261316666353336343732653965666464356564393064366161666332383636393739393636383030376162393338323335363761633038303636383232323434222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b7370616365222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 21:04:22.82111+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('ea36844d-8eb6-41a2-a237-e9a8ae3f99ea', '2022-11-02 13:04:48.073344+02', '2022-11-02 13:04:51.504141+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'vigorous_matsumoto6', 2, 'stop', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20372c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202236396438633234372d613463632d346465362d383663302d636530373332353533313661222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202263653730353961352d633637622d343163372d616330302d666266643630646637356465220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 21:04:51.504141+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('c1d2c9d5-6f30-4cd0-9ac5-6bf1c6039988', '2022-11-02 13:04:55.224578+02', '2022-11-02 13:04:58.762449+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'romantic_johnson8', 3, 'start', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20392c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202262363561373637662d373139612d343838332d613138362d616562316163303563623235222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202265613731633136612d636639332d346334352d613166642d313030666330333435323866220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d65613731633136612d636639332d346334352d613166642d313030666330333435323866220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226964223a202264623461656364653635376231323639333965386261643431326239353333313463643133313666653762336633643036313230336430613731653033376538222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b7370616365222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 21:04:58.762449+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('c7c0a371-db1e-4f10-ab34-6779f573554c', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:43.876957+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'vigilant_shtern5', 1, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202266653431386538312d623861302d346636392d383765612d613061353937373435653239222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202263343237643131322d323364382d343633342d393934652d643635613739653731386663220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d63343237643131322d323364382d343633342d393934652d643635613739653731386663220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227465737431222c0a202020202020202020202020226964223a202265656439366463633135393832396239613931656531336132313036623366383539383839366639396437313432373635323736393134653632386538313039222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7465737431222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-09 13:05:43.876957+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('a7477610-c69b-46d6-97fb-d6a3425e1ab4', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:08.659241+02', '2d72d32e-3021-4843-b582-d962fee897e2', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'hopeful_herschel7', 1, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202230626637343762342d663639312d626461382d653066662d646336306230333566303932222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202231306330316135302d626563312d343436632d623339352d356431383466626133363964222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202232643732643332652d333032312d343834332d623538322d643936326665653839376532222c0a202020202020202020202020226e616d65223a20227363686564756c6564222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202239306363313330652d396633392d343130612d613537342d373431653339373837376331220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202238366163393065322d636338312d343164632d613136652d656563613534633861336337222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d39306363313330652d396633392d343130612d613537342d373431653339373837376331220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227363686564756c6564222c0a202020202020202020202020226964223a202230333161646132656164343736366465303833333166303565643265356630643637343136363531373735376564663162393234383836623133353963616235222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e34222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c6564222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e34222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-05 21:06:08.659241+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('cd6fe03b-d6cf-4d5d-a448-cef52c3ddea2', '2022-11-02 13:08:07.136084+02', '2022-11-02 13:08:10.801094+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '4e681a60-83da-42c2-902e-6535376ebb77', 'exciting_spence5', 2, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20382c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202261643237653534362d373665322d343461312d626566632d303465373336633764313336222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202265383265376366312d396366632d346334372d623539312d323234333966366330306363220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d65383265376366312d396366632d346334372d623539312d323234333966366330306363220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227465737431222c0a202020202020202020202020226964223a202238366438353962313262363531393136306435336239396434663031353562663661656565666264333364383866653933653265656365663232656236356465222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7465737431222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-09 13:08:10.801094+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('b56215f2-3b5e-406a-ac54-41c284dc9af3', '2022-11-02 13:09:51.764313+02', '2022-11-02 13:09:54.749685+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '4e681a60-83da-42c2-902e-6535376ebb77', 'tender_shamir3', 3, 'stop', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a2031302c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202235386561326430392d393933622d343735342d386337642d306330656339343465326565222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202237303637643239342d393061392d343733342d613935622d306630316236363636633034220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-09 13:09:54.749685+02') ON CONFLICT DO NOTHING; -INSERT INTO public.workspace_builds VALUES ('2bfa1945-e81f-44e4-8f41-394200f6cb30', '2022-11-02 13:10:42.104687+02', '2022-11-02 13:10:45.60543+02', '2d72d32e-3021-4843-b582-d962fee897e2', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'adoring_satoshi8', 2, 'stop', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20372c0a2020226c696e65616765223a202230626637343762342d663639312d626461382d653066662d646336306230333566303932222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202261396262396332372d613533622d343532342d383231622d363464336266326461343763222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202232643732643332652d333032312d343834332d623538322d643936326665653839376532222c0a202020202020202020202020226e616d65223a20227363686564756c6564222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202234613131613336662d626230662d343764342d623737302d653430346166306465626535220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202238366163393065322d636338312d343164632d613136652d656563613534633861336337222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-05 21:10:45.60543+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('a8c0b8c5-c9a8-4f33-93a4-8142e6858244', '2022-11-02 13:04:19.044082+02', '2022-11-02 13:04:22.82111+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'wizardly_lumiere8', 1, 'start', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202231376363313761662d386262622d343736312d616433392d646136326164353132633233222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202237363965646261312d626663662d343662662d613565382d306632353333643534663731220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d37363965646261312d626663662d343662662d613565382d306632353333643534663731220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226964223a202261316666353336343732653965666464356564393064366161666332383636393739393636383030376162393338323335363761633038303636383232323434222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b7370616365222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '52a90399-a53d-4644-be3c-47ee18a5716e', '2022-11-02 21:04:22.82111+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('ea36844d-8eb6-41a2-a237-e9a8ae3f99ea', '2022-11-02 13:04:48.073344+02', '2022-11-02 13:04:51.504141+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'vigorous_matsumoto6', 2, 'stop', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20372c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202236396438633234372d613463632d346465362d383663302d636530373332353533313661222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202263653730353961352d633637622d343163372d616330302d666266643630646637356465220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '104c5815-7bd2-4d09-b76c-00c61b95f0a6', '2022-11-02 21:04:51.504141+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('c1d2c9d5-6f30-4cd0-9ac5-6bf1c6039988', '2022-11-02 13:04:55.224578+02', '2022-11-02 13:04:58.762449+02', '3a9a1feb-e89d-457c-9d53-ac751b198ebe', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'romantic_johnson8', 3, 'start', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20392c0a2020226c696e65616765223a202230633238626130332d623932322d333431342d353766642d656631336166333061373662222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202262363561373637662d373139612d343838332d613138362d616562316163303563623235222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202233613961316665622d653839642d343537632d396435332d616337353162313938656265222c0a202020202020202020202020226e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226f776e6572223a202261646d696e222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202233303039356337312d333830622d343537612d383939352d393762386565366535333037222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a202261646d696e222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a202261646d696e220a2020202020202020202020207d2c0a202020202020202020202020226964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202265613731633136612d636639332d346334352d613166642d313030666330333435323866220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202230393037646162392d313930392d346430332d626666642d393336613261303561323261222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202235663163326261332d366232362d343039632d393739302d646635366236326566636263222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d65613731633136612d636639332d346334352d613166642d313030666330333435323866220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20226d792d776f726b7370616365222c0a202020202020202020202020226964223a202264623461656364653635376231323639333965386261643431326239353333313463643133313666653762336633643036313230336430613731653033376538222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b7370616365222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e32222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d61646d696e2d6d792d776f726b73706163652d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', 'd6ec4737-feaa-446e-aa14-8b2b98b59bf9', '2022-11-02 21:04:58.762449+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('c7c0a371-db1e-4f10-ab34-6779f573554c', '2022-11-02 13:05:40.181124+02', '2022-11-02 13:05:43.876957+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'vigilant_shtern5', 1, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202266653431386538312d623861302d346636392d383765612d613061353937373435653239222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202263343237643131322d323364382d343633342d393934652d643635613739653731386663220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d63343237643131322d323364382d343633342d393934652d643635613739653731386663220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227465737431222c0a202020202020202020202020226964223a202265656439366463633135393832396239613931656531336132313036623366383539383839366639396437313432373635323736393134653632386538313039222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7465737431222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '4de9c41c-eb10-435a-8742-e8725e926a9d', '2022-11-09 13:05:43.876957+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('a7477610-c69b-46d6-97fb-d6a3425e1ab4', '2022-11-02 13:06:03.554876+02', '2022-11-02 13:06:08.659241+02', '2d72d32e-3021-4843-b582-d962fee897e2', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'hopeful_herschel7', 1, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20352c0a2020226c696e65616765223a202230626637343762342d663639312d626461382d653066662d646336306230333566303932222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202231306330316135302d626563312d343436632d623339352d356431383466626133363964222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202232643732643332652d333032312d343834332d623538322d643936326665653839376532222c0a202020202020202020202020226e616d65223a20227363686564756c6564222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202239306363313330652d396633392d343130612d613537342d373431653339373837376331220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202238366163393065322d636338312d343164632d613136652d656563613534633861336337222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d39306363313330652d396633392d343130612d613537342d373431653339373837376331220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227363686564756c6564222c0a202020202020202020202020226964223a202230333161646132656164343736366465303833333166303565643265356630643637343136363531373735376564663162393234383836623133353963616235222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e34222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c6564222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e34222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a206e756c6c2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '424a58cb-61d6-4627-9907-613c396c4a38', '2022-11-05 21:06:08.659241+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('cd6fe03b-d6cf-4d5d-a448-cef52c3ddea2', '2022-11-02 13:08:07.136084+02', '2022-11-02 13:08:10.801094+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '4e681a60-83da-42c2-902e-6535376ebb77', 'exciting_spence5', 2, 'start', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20382c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202261643237653534362d373665322d343461312d626566632d303465373336633764313336222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20312c0a202020202020202020202020227472616e736974696f6e223a20227374617274220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202265383265376366312d396366632d346334372d623539312d323234333966366330306363220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f636f6e7461696e6572222c0a202020202020226e616d65223a2022776f726b7370616365222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022696e6465785f6b6579223a20302c0a2020202020202020202022736368656d615f76657273696f6e223a20322c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022617474616368223a2066616c73652c0a20202020202020202020202022627269646765223a2022222c0a202020202020202020202020226361706162696c6974696573223a205b5d2c0a20202020202020202020202022636f6d6d616e64223a205b5d2c0a20202020202020202020202022636f6e7461696e65725f6c6f6773223a206e756c6c2c0a202020202020202020202020226370755f736574223a2022222c0a202020202020202020202020226370755f736861726573223a20302c0a2020202020202020202020202264657374726f795f67726163655f7365636f6e6473223a206e756c6c2c0a2020202020202020202020202264657669636573223a205b5d2c0a20202020202020202020202022646e73223a205b0a202020202020202020202020202022312e312e312e31220a2020202020202020202020205d2c0a20202020202020202020202022646e735f6f707473223a206e756c6c2c0a20202020202020202020202022646e735f736561726368223a206e756c6c2c0a20202020202020202020202022646f6d61696e6e616d65223a2022222c0a20202020202020202020202022656e747279706f696e74223a205b0a2020202020202020202020202020227368222c0a2020202020202020202020202020222d63222c0a20202020202020202020202020202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74220a2020202020202020202020205d2c0a20202020202020202020202022656e76223a205b0a202020202020202020202020202022434f4445525f4147454e545f544f4b454e3d65383265376366312d396366632d346334372d623539312d323234333966366330306363220a2020202020202020202020205d2c0a20202020202020202020202022657869745f636f6465223a206e756c6c2c0a2020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202267707573223a206e756c6c2c0a2020202020202020202020202267726f75705f616464223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a206e756c6c2c0a20202020202020202020202022686f7374223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022686f7374223a2022686f73742e646f636b65722e696e7465726e616c222c0a20202020202020202020202020202020226970223a2022686f73742d67617465776179220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022686f73746e616d65223a20227465737431222c0a202020202020202020202020226964223a202238366438353962313262363531393136306435336239396434663031353562663661656565666264333364383866653933653265656365663232656236356465222c0a20202020202020202020202022696d616765223a20227368613235363a32663565366139303562653439366363373931306133643838613362646536343033333733616462623734323861326364346262303938346236343364373731222c0a20202020202020202020202022696e6974223a2066616c73652c0a2020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a2020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a202020202020202020202020226970635f6d6f6465223a202270726976617465222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226c696e6b73223a206e756c6c2c0a202020202020202020202020226c6f675f647269766572223a20226a6f75726e616c64222c0a202020202020202020202020226c6f675f6f707473223a206e756c6c2c0a202020202020202020202020226c6f6773223a2066616c73652c0a202020202020202020202020226d61785f72657472795f636f756e74223a20302c0a202020202020202020202020226d656d6f7279223a20302c0a202020202020202020202020226d656d6f72795f73776170223a20302c0a202020202020202020202020226d6f756e7473223a205b5d2c0a202020202020202020202020226d7573745f72756e223a20747275652c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7465737431222c0a202020202020202020202020226e6574776f726b5f616c696173223a206e756c6c2c0a202020202020202020202020226e6574776f726b5f64617461223a205b0a20202020202020202020202020207b0a202020202020202020202020202020202267617465776179223a20223137322e31372e302e31222c0a2020202020202020202020202020202022676c6f62616c5f697076365f61646472657373223a2022222c0a2020202020202020202020202020202022676c6f62616c5f697076365f7072656669785f6c656e677468223a20302c0a202020202020202020202020202020202269705f61646472657373223a20223137322e31372e302e33222c0a202020202020202020202020202020202269705f7072656669785f6c656e677468223a2031362c0a2020202020202020202020202020202022697076365f67617465776179223a2022222c0a20202020202020202020202020202020226e6574776f726b5f6e616d65223a2022627269646765220a20202020202020202020202020207d0a2020202020202020202020205d2c0a202020202020202020202020226e6574776f726b5f6d6f6465223a202264656661756c74222c0a202020202020202020202020226e6574776f726b73223a206e756c6c2c0a202020202020202020202020226e6574776f726b735f616476616e636564223a205b5d2c0a202020202020202020202020227069645f6d6f6465223a2022222c0a20202020202020202020202022706f727473223a205b5d2c0a2020202020202020202020202270726976696c65676564223a2066616c73652c0a202020202020202020202020227075626c6973685f616c6c5f706f727473223a2066616c73652c0a20202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202272656d6f76655f766f6c756d6573223a20747275652c0a2020202020202020202020202272657374617274223a20226e6f222c0a20202020202020202020202022726d223a2066616c73652c0a2020202020202020202020202272756e74696d65223a202272756e63222c0a2020202020202020202020202273656375726974795f6f707473223a205b5d2c0a2020202020202020202020202273686d5f73697a65223a2036342c0a202020202020202020202020227374617274223a20747275652c0a20202020202020202020202022737464696e5f6f70656e223a2066616c73652c0a2020202020202020202020202273746f705f7369676e616c223a2022222c0a2020202020202020202020202273746f705f74696d656f7574223a20302c0a2020202020202020202020202273746f726167655f6f707473223a206e756c6c2c0a2020202020202020202020202273797363746c73223a206e756c6c2c0a20202020202020202020202022746d706673223a206e756c6c2c0a20202020202020202020202022747479223a2066616c73652c0a20202020202020202020202022756c696d6974223a205b5d2c0a2020202020202020202020202275706c6f6164223a205b5d2c0a2020202020202020202020202275736572223a202231303030222c0a20202020202020202020202022757365726e735f6d6f6465223a2022222c0a20202020202020202020202022766f6c756d6573223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022636f6e7461696e65725f70617468223a20222f686f6d652f636f6465722f222c0a202020202020202020202020202020202266726f6d5f636f6e7461696e6572223a2022222c0a2020202020202020202020202020202022686f73745f70617468223a2022222c0a2020202020202020202020202020202022726561645f6f6e6c79223a2066616c73652c0a2020202020202020202020202020202022766f6c756d655f6e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a20202020202020202020202020207d0a2020202020202020202020205d2c0a20202020202020202020202022776f726b696e675f646972223a20222f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b0a2020202020202020202020205b0a20202020202020202020202020207b0a202020202020202020202020202020202274797065223a20226765745f61747472222c0a202020202020202020202020202020202276616c7565223a2022656e76220a20202020202020202020202020207d0a2020202020202020202020205d0a202020202020202020205d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a496966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65222c0a20202020202020202020202022646f636b65725f766f6c756d652e686f6d655f766f6c756d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '452e84e3-6847-4fcc-b8b2-ee43cd1f37fc', '2022-11-09 13:08:10.801094+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('b56215f2-3b5e-406a-ac54-41c284dc9af3', '2022-11-02 13:09:51.764313+02', '2022-11-02 13:09:54.749685+02', 'b90547be-8870-4d68-8184-e8b2242b7c01', '4e681a60-83da-42c2-902e-6535376ebb77', 'tender_shamir3', 3, 'stop', '0ed9befc-4911-4ccf-a8e2-559bf72daa94', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a2031302c0a2020226c696e65616765223a202231623532313632352d643737322d333863302d326634652d343163386635333763323638222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202235386561326430392d393933622d343735342d386337642d306330656339343465326565222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202262393035343762652d383837302d346436382d383138342d653862323234326237633031222c0a202020202020202020202020226e616d65223a20227465737431222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202237303637643239342d393061392d343733342d613935622d306630316236363636633034220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202236313337353939642d346164362d346535382d623066612d613364316138386661356139222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202233613538356263372d373565362d343038652d623062632d646336346534643362653061222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d74657374312d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d74657374312d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', '52874f66-89cc-4e6b-8066-80ba21ad9e57', '2022-11-09 13:09:54.749685+02') ON CONFLICT DO NOTHING; +INSERT INTO workspace_builds VALUES ('2bfa1945-e81f-44e4-8f41-394200f6cb30', '2022-11-02 13:10:42.104687+02', '2022-11-02 13:10:45.60543+02', '2d72d32e-3021-4843-b582-d962fee897e2', '920baba5-4c64-4686-8b7d-d1bef5683eae', 'adoring_satoshi8', 2, 'stop', '30095c71-380b-457a-8995-97b8ee6e5307', '\x7b0a20202276657273696f6e223a20342c0a2020227465727261666f726d5f76657273696f6e223a2022312e322e38222c0a20202273657269616c223a20372c0a2020226c696e65616765223a202230626637343762342d663639312d626461382d653066662d646336306230333566303932222c0a2020226f757470757473223a207b7d2c0a2020227265736f7572636573223a205b0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f70726f766973696f6e6572222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a202020202020202020202020226964223a202261396262396332372d613533622d343532342d383231622d363464336266326461343763222c0a202020202020202020202020226f73223a20226c696e7578220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a202264617461222c0a2020202020202274797065223a2022636f6465725f776f726b7370616365222c0a202020202020226e616d65223a20226d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226163636573735f706f7274223a20333233322c0a202020202020202020202020226163636573735f75726c223a2022687474703a2f2f3139322e3136382e312e3134363a33323332222c0a202020202020202020202020226964223a202232643732643332652d333032312d343834332d623538322d643936326665653839376532222c0a202020202020202020202020226e616d65223a20227363686564756c6564222c0a202020202020202020202020226f776e6572223a2022696d746865737570657276697a72222c0a202020202020202020202020226f776e65725f656d61696c223a2022222c0a202020202020202020202020226f776e65725f6964223a202230656439626566632d343931312d346363662d613865322d353539626637326461613934222c0a2020202020202020202020202273746172745f636f756e74223a20302c0a202020202020202020202020227472616e736974696f6e223a202273746f70220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f6167656e74222c0a202020202020226e616d65223a20226d61696e222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a2020202020202020202020202261726368223a2022616d643634222c0a2020202020202020202020202261757468223a2022746f6b656e222c0a20202020202020202020202022646972223a206e756c6c2c0a20202020202020202020202022656e76223a207b0a2020202020202020202020202020224749545f415554484f525f454d41494c223a2022222c0a2020202020202020202020202020224749545f415554484f525f4e414d45223a2022696d746865737570657276697a72222c0a2020202020202020202020202020224749545f434f4d4d49545445525f454d41494c223a2022222c0a2020202020202020202020202020224749545f434f4d4d49545445525f4e414d45223a2022696d746865737570657276697a72220a2020202020202020202020207d2c0a202020202020202020202020226964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022696e69745f736372697074223a202223212f7573722f62696e2f656e762073685c6e736574202d65757820706970656661696c5c6e42494e4152595f4c4f434154494f4e3d24286d6b74656d70202d64202d7420746d702e636f646572585858585858292f636f6465725c6e42494e4152595f55524c3d687474703a2f2f3139322e3136382e312e3134363a333233322f62696e2f636f6465722d6c696e75782d616d6436345c6e6966207768696368206375726c205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c746375726c202d6673534c205c22247b42494e4152595f55524c7d5c22202d6f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682077676574205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7477676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c69662077686963682062757379626f78205c75303033652f6465762f6e756c6c20325c75303033655c7530303236313b207468656e5c6e5c7462757379626f782077676574202d71205c22247b42494e4152595f55524c7d5c22202d4f205c22247b42494e4152595f4c4f434154494f4e7d5c225c6e656c73655c6e5c746563686f205c226572726f723a206e6f20646f776e6c6f616420746f6f6c20666f756e642c20706c6561736520696e7374616c6c206375726c2c2077676574206f722062757379626f7820776765745c225c6e5c746578697420315c6e66695c6e63686d6f64202b78202442494e4152595f4c4f434154494f4e5c6e6578706f727420434f4445525f4147454e545f415554483d5c22746f6b656e5c225c6e6578706f727420434f4445525f4147454e545f55524c3d5c22687474703a2f2f3139322e3136382e312e3134363a333233322f5c225c6e65786563202442494e4152595f4c4f434154494f4e206167656e74222c0a202020202020202020202020226f73223a20226c696e7578222c0a20202020202020202020202022737461727475705f736372697074223a2022636f64652d736572766572202d2d61757468206e6f6e65222c0a20202020202020202020202022746f6b656e223a202234613131613336662d626230662d343764342d623737302d653430346166306465626535220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022636f6465725f617070222c0a202020202020226e616d65223a2022636f64652d736572766572222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f636f6465722f636f6465725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20302c0a202020202020202020202261747472696275746573223a207b0a202020202020202020202020226167656e745f6964223a202238383431383734642d306335632d343961622d616231302d326336623865353039343333222c0a20202020202020202020202022636f6d6d616e64223a206e756c6c2c0a202020202020202020202020226865616c7468636865636b223a205b0a20202020202020202020202020207b0a2020202020202020202020202020202022696e74657276616c223a20332c0a20202020202020202020202020202020227468726573686f6c64223a2031302c0a202020202020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f6865616c74687a220a20202020202020202020202020207d0a2020202020202020202020205d2c0a2020202020202020202020202269636f6e223a20222f69636f6e2f636f64652e737667222c0a202020202020202020202020226964223a202238366163393065322d636338312d343164632d613136652d656563613534633861336337222c0a202020202020202020202020226e616d65223a206e756c6c2c0a2020202020202020202020202272656c61746976655f70617468223a206e756c6c2c0a20202020202020202020202022737562646f6d61696e223a206e756c6c2c0a2020202020202020202020202275726c223a2022687474703a2f2f6c6f63616c686f73743a383038302f3f666f6c6465723d2f686f6d652f636f646572220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a2022626e567362413d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022636f6465725f6167656e742e6d61696e222c0a20202020202020202020202022646174612e636f6465725f70726f766973696f6e65722e6d65222c0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d2c0a202020207b0a202020202020226d6f6465223a20226d616e61676564222c0a2020202020202274797065223a2022646f636b65725f766f6c756d65222c0a202020202020226e616d65223a2022686f6d655f766f6c756d65222c0a2020202020202270726f7669646572223a202270726f76696465725b5c2272656769737472792e7465727261666f726d2e696f2f6b7265757a7765726b65722f646f636b65725c225d222c0a20202020202022696e7374616e636573223a205b0a20202020202020207b0a2020202020202020202022736368656d615f76657273696f6e223a20312c0a202020202020202020202261747472696275746573223a207b0a20202020202020202020202022647269766572223a20226c6f63616c222c0a202020202020202020202020226472697665725f6f707473223a207b7d2c0a202020202020202020202020226964223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74222c0a202020202020202020202020226c6162656c73223a205b5d2c0a202020202020202020202020226d6f756e74706f696e74223a20222f7661722f6c69622f646f636b65722f766f6c756d65732f636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f742f5f64617461222c0a202020202020202020202020226e616d65223a2022636f6465722d696d746865737570657276697a722d7363686564756c65642d726f6f74220a202020202020202020207d2c0a202020202020202020202273656e7369746976655f61747472696275746573223a205b5d2c0a202020202020202020202270726976617465223a202265794a7a5932686c62574666646d567963326c7662694936496a456966513d3d222c0a2020202020202020202022646570656e64656e63696573223a205b0a20202020202020202020202022646174612e636f6465725f776f726b73706163652e6d65220a202020202020202020205d0a20202020202020207d0a2020202020205d0a202020207d0a20205d0a7d0a0a', 'd842dc52-93b9-46ed-842d-d1569b50ddfc', '2022-11-05 21:10:45.60543+02') ON CONFLICT DO NOTHING; -- -- Name: licenses_id_seq; Type: SEQUENCE SET; Schema: public; Owner: coder -- -SELECT pg_catalog.setval('public.licenses_id_seq', 1, false); +SELECT pg_catalog.setval('licenses_id_seq', 1, false); -- diff --git a/coderd/database/migrations/testdata/fixtures/000048_userdelete.up.sql b/coderd/database/migrations/testdata/fixtures/000048_userdelete.up.sql index c4f8b2e909773..e5594bacee16e 100644 --- a/coderd/database/migrations/testdata/fixtures/000048_userdelete.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000048_userdelete.up.sql @@ -1,34 +1,34 @@ -- This is a deleted user that shares the same username and linked_id as the existing user below. -- Any future migrations need to handle this case. -INSERT INTO public.users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) +INSERT INTO users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) VALUES ('a0061a8e-7db7-4585-838c-3116a003dd21', 'githubuser@coder.com', 'githubuser', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}', true) ON CONFLICT DO NOTHING; -INSERT INTO public.organization_members VALUES ('a0061a8e-7db7-4585-838c-3116a003dd21', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; -INSERT INTO public.user_links(user_id, login_type, linked_id, oauth_access_token) +INSERT INTO organization_members VALUES ('a0061a8e-7db7-4585-838c-3116a003dd21', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; +INSERT INTO user_links(user_id, login_type, linked_id, oauth_access_token) VALUES('a0061a8e-7db7-4585-838c-3116a003dd21', 'github', '100', ''); -INSERT INTO public.users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) +INSERT INTO users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) VALUES ('fc1511ef-4fcf-4a3b-98a1-8df64160e35a', 'githubuser@coder.com', 'githubuser', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}', false) ON CONFLICT DO NOTHING; -INSERT INTO public.organization_members VALUES ('fc1511ef-4fcf-4a3b-98a1-8df64160e35a', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; -INSERT INTO public.user_links(user_id, login_type, linked_id, oauth_access_token) +INSERT INTO organization_members VALUES ('fc1511ef-4fcf-4a3b-98a1-8df64160e35a', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; +INSERT INTO user_links(user_id, login_type, linked_id, oauth_access_token) VALUES('fc1511ef-4fcf-4a3b-98a1-8df64160e35a', 'github', '100', ''); -- Additionally, there is no unique constraint on user_id. So also add another user_link for the same user. -- This has happened on a production database. -INSERT INTO public.user_links(user_id, login_type, linked_id, oauth_access_token) +INSERT INTO user_links(user_id, login_type, linked_id, oauth_access_token) VALUES('fc1511ef-4fcf-4a3b-98a1-8df64160e35a', 'oidc', 'foo', ''); -- Lastly, make 2 other users who have the same user link. -INSERT INTO public.users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) +INSERT INTO users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) VALUES ('580ed397-727d-4aaf-950a-51f89f556c24', 'dup_link_a@coder.com', 'dupe_a', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}', false) ON CONFLICT DO NOTHING; -INSERT INTO public.organization_members VALUES ('580ed397-727d-4aaf-950a-51f89f556c24', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; -INSERT INTO public.user_links(user_id, login_type, linked_id, oauth_access_token) +INSERT INTO organization_members VALUES ('580ed397-727d-4aaf-950a-51f89f556c24', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; +INSERT INTO user_links(user_id, login_type, linked_id, oauth_access_token) VALUES('580ed397-727d-4aaf-950a-51f89f556c24', 'github', '500', ''); -INSERT INTO public.users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) +INSERT INTO users(id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, deleted) VALUES ('c813366b-2fde-45ae-920c-101c3ad6a1e1', 'dup_link_b@coder.com', 'dupe_b', '\x', '2022-11-02 13:05:21.445455+02', '2022-11-02 13:05:21.445455+02', 'active', '{}', false) ON CONFLICT DO NOTHING; -INSERT INTO public.organization_members VALUES ('c813366b-2fde-45ae-920c-101c3ad6a1e1', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; -INSERT INTO public.user_links(user_id, login_type, linked_id, oauth_access_token) +INSERT INTO organization_members VALUES ('c813366b-2fde-45ae-920c-101c3ad6a1e1', 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', '2022-11-02 13:05:21.447595+02', '2022-11-02 13:05:21.447595+02', '{}') ON CONFLICT DO NOTHING; +INSERT INTO user_links(user_id, login_type, linked_id, oauth_access_token) VALUES('c813366b-2fde-45ae-920c-101c3ad6a1e1', 'github', '500', ''); diff --git a/coderd/database/migrations/testdata/fixtures/000150_workspace_app_usage_stats.up.sql b/coderd/database/migrations/testdata/fixtures/000150_workspace_app_usage_stats.up.sql index 9a9a8f0fa72dc..98655f7b2ff28 100644 --- a/coderd/database/migrations/testdata/fixtures/000150_workspace_app_usage_stats.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000150_workspace_app_usage_stats.up.sql @@ -1,4 +1,4 @@ -INSERT INTO public.workspace_app_stats ( +INSERT INTO workspace_app_stats ( id, user_id, workspace_id, diff --git a/coderd/database/migrations/testdata/fixtures/000276_workspace_modules.up.sql b/coderd/database/migrations/testdata/fixtures/000276_workspace_modules.up.sql index b2ff302722b08..2cbeb15460a83 100644 --- a/coderd/database/migrations/testdata/fixtures/000276_workspace_modules.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000276_workspace_modules.up.sql @@ -1,5 +1,5 @@ INSERT INTO - public.workspace_modules ( + workspace_modules ( id, job_id, transition, diff --git a/coderd/database/migrations/testdata/fixtures/000291_workspace_parameter_presets.up.sql b/coderd/database/migrations/testdata/fixtures/000291_workspace_parameter_presets.up.sql index 296df73a587c3..17dc26da8e426 100644 --- a/coderd/database/migrations/testdata/fixtures/000291_workspace_parameter_presets.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000291_workspace_parameter_presets.up.sql @@ -1,15 +1,15 @@ -INSERT INTO public.organizations (id, name, description, created_at, updated_at, is_default, display_name, icon) VALUES ('20362772-802a-4a72-8e4f-3648b4bfd168', 'strange_hopper58', 'wizardly_stonebraker60', '2025-02-07 07:46:19.507551 +00:00', '2025-02-07 07:46:19.507552 +00:00', false, 'competent_rhodes59', ''); +INSERT INTO organizations (id, name, description, created_at, updated_at, is_default, display_name, icon) VALUES ('20362772-802a-4a72-8e4f-3648b4bfd168', 'strange_hopper58', 'wizardly_stonebraker60', '2025-02-07 07:46:19.507551 +00:00', '2025-02-07 07:46:19.507552 +00:00', false, 'competent_rhodes59', ''); -INSERT INTO public.users (id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, login_type, avatar_url, deleted, last_seen_at, quiet_hours_schedule, theme_preference, name, github_com_user_id, hashed_one_time_passcode, one_time_passcode_expires_at) VALUES ('6c353aac-20de-467b-bdfb-3c30a37adcd2', 'vigorous_murdock61', 'affectionate_hawking62', 'lqTu9C5363AwD7NVNH6noaGjp91XIuZJ', '2025-02-07 07:46:19.510861 +00:00', '2025-02-07 07:46:19.512949 +00:00', 'active', '{}', 'password', '', false, '0001-01-01 00:00:00.000000', '', '', 'vigilant_hugle63', null, null, null); +INSERT INTO users (id, email, username, hashed_password, created_at, updated_at, status, rbac_roles, login_type, avatar_url, deleted, last_seen_at, quiet_hours_schedule, theme_preference, name, github_com_user_id, hashed_one_time_passcode, one_time_passcode_expires_at) VALUES ('6c353aac-20de-467b-bdfb-3c30a37adcd2', 'vigorous_murdock61', 'affectionate_hawking62', 'lqTu9C5363AwD7NVNH6noaGjp91XIuZJ', '2025-02-07 07:46:19.510861 +00:00', '2025-02-07 07:46:19.512949 +00:00', 'active', '{}', 'password', '', false, '0001-01-01 00:00:00.000000', '', '', 'vigilant_hugle63', null, null, null); -INSERT INTO public.templates (id, created_at, updated_at, organization_id, deleted, name, provisioner, active_version_id, description, default_ttl, created_by, icon, user_acl, group_acl, display_name, allow_user_cancel_workspace_jobs, allow_user_autostart, allow_user_autostop, failure_ttl, time_til_dormant, time_til_dormant_autodelete, autostop_requirement_days_of_week, autostop_requirement_weeks, autostart_block_days_of_week, require_active_version, deprecated, activity_bump, max_port_sharing_level) VALUES ('6b298946-7a4f-47ac-9158-b03b08740a41', '2025-02-07 07:46:19.513317 +00:00', '2025-02-07 07:46:19.513317 +00:00', '20362772-802a-4a72-8e4f-3648b4bfd168', false, 'modest_leakey64', 'echo', 'e6cfa2a4-e4cf-4182-9e19-08b975682a28', 'upbeat_wright65', 604800000000000, '6c353aac-20de-467b-bdfb-3c30a37adcd2', 'nervous_keller66', '{}', '{"20362772-802a-4a72-8e4f-3648b4bfd168": ["read", "use"]}', 'determined_aryabhata67', false, true, true, 0, 0, 0, 0, 0, 0, false, '', 3600000000000, 'owner'); -INSERT INTO public.template_versions (id, template_id, organization_id, created_at, updated_at, name, readme, job_id, created_by, external_auth_providers, message, archived, source_example_id) VALUES ('af58bd62-428c-4c33-849b-d43a3be07d93', '6b298946-7a4f-47ac-9158-b03b08740a41', '20362772-802a-4a72-8e4f-3648b4bfd168', '2025-02-07 07:46:19.514782 +00:00', '2025-02-07 07:46:19.514782 +00:00', 'distracted_shockley68', 'sleepy_turing69', 'f2e2ea1c-5aa3-4a1d-8778-2e5071efae59', '6c353aac-20de-467b-bdfb-3c30a37adcd2', '[]', '', false, null); +INSERT INTO templates (id, created_at, updated_at, organization_id, deleted, name, provisioner, active_version_id, description, default_ttl, created_by, icon, user_acl, group_acl, display_name, allow_user_cancel_workspace_jobs, allow_user_autostart, allow_user_autostop, failure_ttl, time_til_dormant, time_til_dormant_autodelete, autostop_requirement_days_of_week, autostop_requirement_weeks, autostart_block_days_of_week, require_active_version, deprecated, activity_bump, max_port_sharing_level) VALUES ('6b298946-7a4f-47ac-9158-b03b08740a41', '2025-02-07 07:46:19.513317 +00:00', '2025-02-07 07:46:19.513317 +00:00', '20362772-802a-4a72-8e4f-3648b4bfd168', false, 'modest_leakey64', 'echo', 'e6cfa2a4-e4cf-4182-9e19-08b975682a28', 'upbeat_wright65', 604800000000000, '6c353aac-20de-467b-bdfb-3c30a37adcd2', 'nervous_keller66', '{}', '{"20362772-802a-4a72-8e4f-3648b4bfd168": ["read", "use"]}', 'determined_aryabhata67', false, true, true, 0, 0, 0, 0, 0, 0, false, '', 3600000000000, 'owner'); +INSERT INTO template_versions (id, template_id, organization_id, created_at, updated_at, name, readme, job_id, created_by, external_auth_providers, message, archived, source_example_id) VALUES ('af58bd62-428c-4c33-849b-d43a3be07d93', '6b298946-7a4f-47ac-9158-b03b08740a41', '20362772-802a-4a72-8e4f-3648b4bfd168', '2025-02-07 07:46:19.514782 +00:00', '2025-02-07 07:46:19.514782 +00:00', 'distracted_shockley68', 'sleepy_turing69', 'f2e2ea1c-5aa3-4a1d-8778-2e5071efae59', '6c353aac-20de-467b-bdfb-3c30a37adcd2', '[]', '', false, null); -INSERT INTO public.template_version_presets (id, template_version_id, name, created_at) VALUES ('28b42cc0-c4fe-4907-a0fe-e4d20f1e9bfe', 'af58bd62-428c-4c33-849b-d43a3be07d93', 'test', '0001-01-01 00:00:00.000000 +00:00'); +INSERT INTO template_version_presets (id, template_version_id, name, created_at) VALUES ('28b42cc0-c4fe-4907-a0fe-e4d20f1e9bfe', 'af58bd62-428c-4c33-849b-d43a3be07d93', 'test', '0001-01-01 00:00:00.000000 +00:00'); -- Add presets with the same template version ID and name -- to ensure they're correctly handled by the 00031*_preset_prebuilds migration. -INSERT INTO public.template_version_presets ( +INSERT INTO template_version_presets ( id, template_version_id, name, created_at ) VALUES ( @@ -19,7 +19,7 @@ VALUES ( '0001-01-01 00:00:00.000000 +00:00' ); -INSERT INTO public.template_version_presets ( +INSERT INTO template_version_presets ( id, template_version_id, name, created_at ) VALUES ( @@ -29,4 +29,4 @@ VALUES ( '0001-01-01 00:00:00.000000 +00:00' ); -INSERT INTO public.template_version_preset_parameters (id, template_version_preset_id, name, value) VALUES ('ea90ccd2-5024-459e-87e4-879afd24de0f', '28b42cc0-c4fe-4907-a0fe-e4d20f1e9bfe', 'test', 'test'); +INSERT INTO template_version_preset_parameters (id, template_version_preset_id, name, value) VALUES ('ea90ccd2-5024-459e-87e4-879afd24de0f', '28b42cc0-c4fe-4907-a0fe-e4d20f1e9bfe', 'test', 'test'); diff --git a/coderd/database/migrations/testdata/fixtures/000366_create_tasks_data_model.up.sql b/coderd/database/migrations/testdata/fixtures/000366_create_tasks_data_model.up.sql index b96ffc771d01e..2e7ed253a67b7 100644 --- a/coderd/database/migrations/testdata/fixtures/000366_create_tasks_data_model.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000366_create_tasks_data_model.up.sql @@ -1,4 +1,4 @@ -INSERT INTO public.tasks VALUES ( +INSERT INTO tasks VALUES ( 'f5a1c3e4-8b2d-4f6a-9d7e-2a8b5c9e1f3d', -- id 'bb640d07-ca8a-4869-b6bc-ae61ebb2fda1', -- organization_id '30095c71-380b-457a-8995-97b8ee6e5307', -- owner_id @@ -11,7 +11,7 @@ INSERT INTO public.tasks VALUES ( NULL -- deleted_at ) ON CONFLICT DO NOTHING; -INSERT INTO public.task_workspace_apps VALUES ( +INSERT INTO task_workspace_apps VALUES ( 'f5a1c3e4-8b2d-4f6a-9d7e-2a8b5c9e1f3d', -- task_id 'a8c0b8c5-c9a8-4f33-93a4-8142e6858244', -- workspace_build_id '8fa17bbd-c48c-44c7-91ae-d4acbc755fad', -- workspace_agent_id diff --git a/coderd/database/migrations/testdata/fixtures/000379_create_tasks_with_status_view.up.sql b/coderd/database/migrations/testdata/fixtures/000379_create_tasks_with_status_view.up.sql index c2d1bf11475b8..b742b6c31be85 100644 --- a/coderd/database/migrations/testdata/fixtures/000379_create_tasks_with_status_view.up.sql +++ b/coderd/database/migrations/testdata/fixtures/000379_create_tasks_with_status_view.up.sql @@ -1,4 +1,4 @@ -INSERT INTO public.task_workspace_apps VALUES ( +INSERT INTO task_workspace_apps VALUES ( 'f5a1c3e4-8b2d-4f6a-9d7e-2a8b5c9e1f3d', -- task_id NULL, -- workspace_agent_id NULL, -- workspace_app_id diff --git a/scripts/check_pg_schema.sh b/scripts/check_pg_schema.sh new file mode 100755 index 0000000000000..994f94a95019f --- /dev/null +++ b/scripts/check_pg_schema.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# This script checks that SQL files do not hardcode the "public" schema; +# they should rely on search_path instead to support deployments using +# non-public schemas. +# +# Usage: check_pg_schema.sh