From 1389a41ab710b90f457427ee77645c9a1f75885e Mon Sep 17 00:00:00 2001 From: "Sebastian (Tiedtke) Huckleberry" Date: Thu, 30 Jul 2026 15:46:08 -0700 Subject: [PATCH 1/4] fix: align owlv2 with latest owl Signed-off-by: Sebastian (Tiedtke) Huckleberry --- cmd/environment_store.go | 12 ++++-------- cmd/environment_store_test.go | 11 +++++------ go.mod | 7 ++++++- go.sum | 20 ++++++++++++++++---- runner/session.go | 3 +-- runner/session_test.go | 7 ++++--- 6 files changed, 36 insertions(+), 24 deletions(-) diff --git a/cmd/environment_store.go b/cmd/environment_store.go index 6ad1e57a6..584e1972e 100644 --- a/cmd/environment_store.go +++ b/cmd/environment_store.go @@ -177,6 +177,10 @@ func (c *runmeOwlStoreClient) Type(ctx context.Context, req owlcmd.TypeRequest) return &owlcmd.TypeResult{Proposals: proposals, Rendered: rendered}, nil } +func (c *runmeOwlStoreClient) ProjectSpec(ctx context.Context, req owlcmd.ProjectSpecRequest) (*owlcmd.ProjectSpecResult, error) { + return owlcmd.NewLocalStoreClient(owlcmd.LocalStoreOptions{}).ProjectSpec(ctx, req) +} + func includeSnapshotTypeProposal(req owlcmd.TypeRequest, suggested bool) bool { return req.All || suggested } @@ -209,10 +213,6 @@ func suggestSnapshotPrimitiveType(env owlcmd.SnapshotEnv) (string, string, bool) return "core/secret", "key name suggests sensitive value", true case upper == "URL" || strings.HasSuffix(upper, "_URL") || strings.Contains(upper, "URL_"): return "core/url", "key name suggests URL", true - case upper == "HOST" || strings.HasSuffix(upper, "_HOST") || strings.Contains(upper, "HOST_"): - return "core/host", "key name suggests host", true - case upper == "PORT" || strings.HasSuffix(upper, "_PORT") || strings.Contains(upper, "PORT_"): - return "core/port", "key name suggests port", true default: return "", "no primitive type heuristic matched", false } @@ -297,10 +297,6 @@ func dotenvSpecTypeName(typeID string) string { return "Secret" case "core/url": return "Url" - case "core/host": - return "Host" - case "core/port": - return "Port" case "core/plain": return "Plain" default: diff --git a/cmd/environment_store_test.go b/cmd/environment_store_test.go index 81ef50f18..792e61a86 100644 --- a/cmd/environment_store_test.go +++ b/cmd/environment_store_test.go @@ -88,9 +88,9 @@ func TestSnapshotTypeProposalHelpers(t *testing.T) { assert.True(t, ok) suggested, reason, ok = suggestSnapshotPrimitiveType(owlSnapshotEnv("SERVICE_HOST", "core/opaque")) - assert.Equal(t, "core/host", suggested) - assert.Equal(t, "key name suggests host", reason) - assert.True(t, ok) + assert.Empty(t, suggested) + assert.Equal(t, "no primitive type heuristic matched", reason) + assert.False(t, ok) suggested, reason, ok = suggestSnapshotPrimitiveType(owlSnapshotEnv("TARGET_PLATFORM", "core/opaque")) assert.Empty(t, suggested) @@ -98,7 +98,7 @@ func TestSnapshotTypeProposalHelpers(t *testing.T) { assert.False(t, ok) assert.Equal(t, "core/opaque", normalizeSnapshotType("https://owl.runme.dev/v1/types/core/opaque")) - assert.Equal(t, "Host", dotenvSpecTypeName("core/host")) + assert.Equal(t, "Opaque", dotenvSpecTypeName("core/host")) } func TestIncludeSnapshotTypeProposalSkipsNoSuggestionUnlessAll(t *testing.T) { @@ -116,13 +116,12 @@ func TestRenderDotenvSpecTypeProposals(t *testing.T) { {Key: "GITHUB_TOKEN", SuggestedType: "core/secret", Description: "The GitHub token to use for API requests."}, {Key: "RUNME_TEST_TOKEN", SuggestedType: "core/secret", Description: "The Runme test token to use for integration tests."}, {Key: "TARGET_PLATFORM", SuggestedType: "", Description: "Target Platform"}, - {Key: "SERVICE_HOST", SuggestedType: "core/host", Description: "Service Host"}, + {Key: "SERVICE_HOST", SuggestedType: "", Description: "Service Host"}, }) assert.Equal(t, strings.Join([]string{ `GITHUB_TOKEN="The GitHub token to use for API requests." # Secret`, `RUNME_TEST_TOKEN="The Runme test token to use for integration tests." # Secret`, - `SERVICE_HOST="Service Host" # Host`, "", }, "\n"), rendered) } diff --git a/go.mod b/go.mod index 066303c08..687e8326b 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/redpanda-data/protoc-gen-go-mcp v0.0.0-20260709214304-372b2d56e470 github.com/rogpeppe/go-internal v1.15.0 github.com/rs/cors v1.11.1 - github.com/runmedev/owl v1.0.2-0.20260727163318-bc2a2f08918e + github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4 github.com/spf13/viper v1.21.0 github.com/stateful/godotenv v0.0.0-20240309032207-c7bc0b812915 github.com/vektah/gqlparser/v2 v2.5.36 @@ -76,6 +76,8 @@ require ( cloud.google.com/go/compute/metadata v0.9.0 // indirect cloud.google.com/go/logging v1.19.0 // indirect cloud.google.com/go/longrunning v1.2.0 // indirect + cuelabs.dev/go/oci/ociregistry v0.0.0-20260601085548-328ff8e2c943 // indirect + cuelang.org/go v0.17.1 // indirect dario.cat/mergo v1.0.2 // indirect github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect github.com/Microsoft/go-winio v0.6.2 // indirect @@ -93,12 +95,14 @@ require ( github.com/clipperhouse/displaywidth v0.11.0 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect + github.com/cockroachdb/apd/v3 v3.2.3 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/cyphar/filepath-securejoin v0.7.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.8.1 // indirect github.com/docker/go-units v0.5.0 // indirect + github.com/emicklei/proto v1.14.3 // indirect github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect @@ -156,6 +160,7 @@ require ( github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.70.1 // indirect github.com/prometheus/procfs v0.21.1 // indirect + github.com/protocolbuffers/txtpbfmt v0.0.0-20260420112717-c39628bde8b5 // indirect github.com/redpanda-data/common-go/api v0.0.0-20250801174835-9eea07f1ea06 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/sanity-io/litter v1.5.5 // indirect diff --git a/go.sum b/go.sum index 2ff70e9ed..b3fd73ef0 100644 --- a/go.sum +++ b/go.sum @@ -26,6 +26,10 @@ connectrpc.com/grpchealth v1.5.0 h1:nHEVTwz9WYKxW2JTYUFD337q76oAZMvot9jX0WjVCQo= connectrpc.com/grpchealth v1.5.0/go.mod h1:fC9WGwKmDruKCNh8wj2rThiaxxoiXxvsCVIu2Ex2voA= connectrpc.com/otelconnect v0.9.0 h1:NggB3pzRC3pukQWaYbRHJulxuXvmCKCKkQ9hbrHAWoA= connectrpc.com/otelconnect v0.9.0/go.mod h1:AEkVLjCPXra+ObGFCOClcJkNjS7zPaQSqvO0lCyjfZc= +cuelabs.dev/go/oci/ociregistry v0.0.0-20260601085548-328ff8e2c943 h1:XUtzi/yWlmuy8V6kkmVbbmirmUqcFe9Ce3gmEaHXf1Q= +cuelabs.dev/go/oci/ociregistry v0.0.0-20260601085548-328ff8e2c943/go.mod h1:WjmQxb+W6nVNCgj8nXrF24lIz95AHwnSl36tpjDZSU8= +cuelang.org/go v0.17.1 h1:liOkxZDqTHrzq0USJX+6bMYOZ5PSf+wzvQr15AHpDCQ= +cuelang.org/go v0.17.1/go.mod h1:xlly/o1wSLvxOsi5vkQGieU0rLOt7TvUIizOFtnxHRU= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -103,6 +107,8 @@ github.com/cloudflare/circl v1.6.4 h1:pOXuDTCEYyzydgUpQ0CQz3LsinKjiSk6nNP5Lt5K64 github.com/cloudflare/circl v1.6.4/go.mod h1:YxarevkLlbaHuWsxG6vmYNWBEsSp4pnp7j+4VljMavY= github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik= github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2/go.mod h1:qwXFYgsP6T7XnJtbKlf1HP8AjxZZyzxMmc+Lq5GjlU4= +github.com/cockroachdb/apd/v3 v3.2.3 h1:4Zx+I3R35bFXMnltzmjP79i2cravE4jTRL6ps9Aux80= +github.com/cockroachdb/apd/v3 v3.2.3/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc= github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -133,6 +139,8 @@ github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE= github.com/elliotchance/orderedmap v1.8.0 h1:TrOREecvh3JbS+NCgwposXG5ZTFHtEsQiCGOhPElnMw= github.com/elliotchance/orderedmap v1.8.0/go.mod h1:wsDwEaX5jEoyhbs7x93zk2H/qv0zwuhg4inXhDkYqys= +github.com/emicklei/proto v1.14.3 h1:zEhlzNkpP8kN6utonKMzlPfIvy82t5Kb9mufaJxSe1Q= +github.com/emicklei/proto v1.14.3/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ= @@ -220,8 +228,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.30.3 h1:4MU6YkEwx7GbcPJOZxrtbu+QfF3pJLJuaYTeAH0DYy8= github.com/go-playground/validator/v10 v10.30.3/go.mod h1:4Axh7oCNGcoGkqLoE4YWt6n20mcEIsPRlB7vPk3lpyc= -github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= -github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= +github.com/go-quicktest/qt v1.102.0 h1:HSQxCeh5YZH3EL3W39ixjtyaEhcWSXQHtHnMBzSs474= +github.com/go-quicktest/qt v1.102.0/go.mod h1:p4lGIVX+8Wa6ZPNDvqcxq36XpUDLh42FLetFU7odllI= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= @@ -306,6 +314,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.5.0 h1:pLqT2kq1zpHW/1D18QMjMpdtX7cekxqtJJjg5ANyWw0= github.com/leodido/go-urn v1.5.0/go.mod h1:9BORnCDhdPBJNDEX+w1bJisa8yOKYi116VeO96s4ifE= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4= github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= @@ -389,6 +399,8 @@ github.com/prometheus/common v0.70.1 h1:1HvjP4D5oL3t8RsPlwxA9onvvStjtIHYE5XuuwOi github.com/prometheus/common v0.70.1/go.mod h1:VdFUQDMZK3VLkurFUVhia6uys/0suUp86TJz5qbJRhc= github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= +github.com/protocolbuffers/txtpbfmt v0.0.0-20260420112717-c39628bde8b5 h1:Mckui8l+Wqz2Ve7XQvsE8SbHNmDWu8NA7Xce5NFJ/kM= +github.com/protocolbuffers/txtpbfmt v0.0.0-20260420112717-c39628bde8b5/go.mod h1:JSbkp0BviKovYYt9XunS95M3mLPibE9bGg+Y95DsEEY= github.com/redpanda-data/common-go/api v0.0.0-20250801174835-9eea07f1ea06 h1:9Ecc+Cg1EyqSTIQ6wQKoKk8BqDlBQmR74bJui4qIqsM= github.com/redpanda-data/common-go/api v0.0.0-20250801174835-9eea07f1ea06/go.mod h1:klAmWfc8Q3hEZk8geFTMu6f2sk3VUKRS7cv/LvB05ig= github.com/redpanda-data/protoc-gen-go-mcp v0.0.0-20260709214304-372b2d56e470 h1:gBvQBXc+MtBa8aGjXTOFLPu+1a+7I0UMu6Np9ofY1Ow= @@ -401,8 +413,8 @@ github.com/rogpeppe/go-internal v1.15.0 h1:D0RCU5rMAp+SpgkiNdrjfJ+LX4J1M32V2NeCY github.com/rogpeppe/go-internal v1.15.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/runmedev/owl v1.0.2-0.20260727163318-bc2a2f08918e h1:UWl6S93tMgLqjIpwrWoui2jBOI//59Mu/TSRjoMztF8= -github.com/runmedev/owl v1.0.2-0.20260727163318-bc2a2f08918e/go.mod h1:j9dHba3PZdEasw/CqycYvRyysO/gwfoWOq4p2jMfvNY= +github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4 h1:y0cw0y+Xfp0PCEi3L4fT6LuWsR9JCFgoot7J9ttxb/0= +github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= diff --git a/runner/session.go b/runner/session.go index 11eaec9b8..13b010819 100644 --- a/runner/session.go +++ b/runner/session.go @@ -181,9 +181,8 @@ type owlEnvStorer struct { } func newOwlStorer(envs []string, proj *project.Project, logger *zap.Logger) (*owlEnvStorer, error) { - // todo(sebastian): technically system should be session opts := []owl.StoreOption{ - owl.WithDotenv("[system]", strings.NewReader(dotenvLines(envs))), + owl.WithDotenv("[process]", strings.NewReader(dotenvLines(envs))), } envSpecFiles := []string{} diff --git a/runner/session_test.go b/runner/session_test.go index cffbba4fd..c08631291 100644 --- a/runner/session_test.go +++ b/runner/session_test.go @@ -132,7 +132,7 @@ func Test_SessionList(t *testing.T) { }) } -func TestOwlSessionTreatsEmptySensitiveEnvAsUnresolved(t *testing.T) { +func TestOwlSessionTreatsEmptySensitiveEnvAsMasked(t *testing.T) { t.Parallel() dir := t.TempDir() @@ -156,9 +156,10 @@ func TestOwlSessionTreatsEmptySensitiveEnvAsUnresolved(t *testing.T) { byName := snapshotItemsByName(snapshot) require.Contains(t, byName, "RUNME_TEST_TOKEN") - assert.Equal(t, "[unset]", byName["RUNME_TEST_TOKEN"].Value) + assert.Equal(t, "[masked]", byName["RUNME_TEST_TOKEN"].Value) assert.Empty(t, byName["RUNME_TEST_TOKEN"].OriginalValue) - assert.Equal(t, owl.VisibilityUnresolved, byName["RUNME_TEST_TOKEN"].Visibility) + assert.Equal(t, owl.VisibilityMasked, byName["RUNME_TEST_TOKEN"].Visibility) + assert.Equal(t, "[process]", byName["RUNME_TEST_TOKEN"].Source.Name) } func snapshotItemsByName(items []owl.SnapshotItem) map[string]owl.SnapshotItem { From cd98ec67d314321345e69ffb700bc4fee6a23424 Mon Sep 17 00:00:00 2001 From: "Sebastian (Tiedtke) Huckleberry" Date: Thu, 30 Jul 2026 17:17:19 -0700 Subject: [PATCH 2/4] fix: normalize owlv2 snapshot types Signed-off-by: Sebastian (Tiedtke) Huckleberry --- cmd/environment_store.go | 9 +++++---- cmd/environment_store_test.go | 8 +++++++- go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/cmd/environment_store.go b/cmd/environment_store.go index 584e1972e..7a294d324 100644 --- a/cmd/environment_store.go +++ b/cmd/environment_store.go @@ -305,7 +305,8 @@ func dotenvSpecTypeName(typeID string) string { } func normalizeSnapshotType(typeID string) string { - return strings.TrimPrefix(typeID, "https://owl.runme.dev/v1/types/") + typeID = strings.TrimPrefix(typeID, "https://owl.runme.dev/v1/types/") + return strings.TrimPrefix(typeID, "github.com/runmedev/owl/types/") } func quoteDotenvSpecDescription(s string) string { @@ -348,7 +349,7 @@ func snapshotEnvsFromProto(envs []*runnerv1.MonitorEnvStoreResponseSnapshot_Snap Name: env.GetName(), Value: snapshotValueFromProto(env.GetResolvedValue(), visibility), Description: env.GetDescription(), - Type: env.GetSpec(), + Type: normalizeSnapshotType(env.GetSpec()), Source: env.GetOrigin(), Explicit: snapshotExplicitFromProto(env), Visibility: visibility, @@ -378,8 +379,8 @@ func snapshotExplicitFromProto(env *runnerv1.MonitorEnvStoreResponseSnapshot_Sna if env.GetDescription() != "" || env.GetIsRequired() { return true } - spec := env.GetSpec() - return spec != "" && spec != "Opaque" && spec != "https://owl.runme.dev/v1/types/core/opaque" + spec := normalizeSnapshotType(env.GetSpec()) + return spec != "" && spec != "Opaque" && spec != "core/opaque" } func snapshotVisibilityFromProto(status runnerv1.MonitorEnvStoreResponseSnapshot_Status) string { diff --git a/cmd/environment_store_test.go b/cmd/environment_store_test.go index 792e61a86..9ed59b8e6 100644 --- a/cmd/environment_store_test.go +++ b/cmd/environment_store_test.go @@ -18,6 +18,7 @@ func TestSnapshotEnvsFromProtoMarksExplicitRows(t *testing.T) { envs := snapshotEnvsFromProto([]*runnerv1.MonitorEnvStoreResponseSnapshot_SnapshotEnv{ {Name: "API_URL", Spec: "Plain"}, + {Name: "OPENAI_API_KEY", Spec: "github.com/runmedev/owl/types/core/opaque"}, {Name: "DATABASE_URL", Spec: "Opaque", Description: "Database URL"}, {Name: "TOKEN", Spec: "Opaque", IsRequired: true}, {Name: "PATH", Spec: "Opaque"}, @@ -32,6 +33,7 @@ func TestSnapshotEnvsFromProtoMarksExplicitRows(t *testing.T) { assert.True(t, byName["API_URL"]) assert.True(t, byName["DATABASE_URL"]) assert.True(t, byName["TOKEN"]) + assert.False(t, byName["OPENAI_API_KEY"]) assert.False(t, byName["PATH"]) assert.False(t, byName["HOME"]) } @@ -42,7 +44,7 @@ func TestSnapshotEnvsFromProtoMapsVisibilityAndDisplayValue(t *testing.T) { envs := snapshotEnvsFromProto([]*runnerv1.MonitorEnvStoreResponseSnapshot_SnapshotEnv{ { Name: "RUNME_TEST_TOKEN", - Spec: "https://owl.runme.dev/v1/types/core/secret", + Spec: "github.com/runmedev/owl/types/core/secret", Status: runnerv1.MonitorEnvStoreResponseSnapshot_STATUS_UNSPECIFIED, }, { @@ -70,12 +72,14 @@ func TestSnapshotEnvsFromProtoMapsVisibilityAndDisplayValue(t *testing.T) { } assert.Equal(t, "[unset]", byName["RUNME_TEST_TOKEN"].Value) + assert.Equal(t, "core/secret", byName["RUNME_TEST_TOKEN"].Type) assert.Equal(t, "unresolved", byName["RUNME_TEST_TOKEN"].Visibility) assert.Equal(t, "[masked]", byName["GITHUB_TOKEN"].Value) assert.Equal(t, "masked", byName["GITHUB_TOKEN"].Visibility) assert.Equal(t, "https://api.example.com", byName["API_URL"].Value) assert.Equal(t, "literal", byName["API_URL"].Visibility) assert.Equal(t, "[hidden]", byName["DATABASE_URL"].Value) + assert.Equal(t, "core/opaque", byName["DATABASE_URL"].Type) assert.Equal(t, "hidden", byName["DATABASE_URL"].Visibility) } @@ -98,6 +102,8 @@ func TestSnapshotTypeProposalHelpers(t *testing.T) { assert.False(t, ok) assert.Equal(t, "core/opaque", normalizeSnapshotType("https://owl.runme.dev/v1/types/core/opaque")) + assert.Equal(t, "core/opaque", normalizeSnapshotType("github.com/runmedev/owl/types/core/opaque")) + assert.Equal(t, "universe/anthropic", normalizeSnapshotType("github.com/runmedev/owl/types/universe/anthropic")) assert.Equal(t, "Opaque", dotenvSpecTypeName("core/host")) } diff --git a/go.mod b/go.mod index 687e8326b..2b252085d 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/redpanda-data/protoc-gen-go-mcp v0.0.0-20260709214304-372b2d56e470 github.com/rogpeppe/go-internal v1.15.0 github.com/rs/cors v1.11.1 - github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4 + github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152 github.com/spf13/viper v1.21.0 github.com/stateful/godotenv v0.0.0-20240309032207-c7bc0b812915 github.com/vektah/gqlparser/v2 v2.5.36 diff --git a/go.sum b/go.sum index b3fd73ef0..14b1c304d 100644 --- a/go.sum +++ b/go.sum @@ -413,8 +413,8 @@ github.com/rogpeppe/go-internal v1.15.0 h1:D0RCU5rMAp+SpgkiNdrjfJ+LX4J1M32V2NeCY github.com/rogpeppe/go-internal v1.15.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4 h1:y0cw0y+Xfp0PCEi3L4fT6LuWsR9JCFgoot7J9ttxb/0= -github.com/runmedev/owl v1.0.2-0.20260730202925-ecea6854efb4/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= +github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152 h1:fh4I1tfkb7WFiipzzXq6XyGYNEXQ5iMzgqhVYoXOYXY= +github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= From 022eda98724b703ca079a56f26609bed75526b37 Mon Sep 17 00:00:00 2001 From: "Sebastian (Tiedtke) Huckleberry" Date: Thu, 30 Jul 2026 21:38:04 -0700 Subject: [PATCH 3/4] fix: plumb owlv2 snapshot reveal policy Signed-off-by: Sebastian (Tiedtke) Huckleberry --- .../proto/es/runme/runner/v1/runner_pb.d.ts | 46 +++++ api/gen/proto/es/runme/runner/v1/runner_pb.js | 9 +- .../proto/es/runme/runner/v2/runner_pb.d.ts | 46 +++++ api/gen/proto/es/runme/runner/v2/runner_pb.js | 9 +- api/gen/proto/go/runme/runner/v1/runner.pb.go | 148 +++++++++++----- api/gen/proto/go/runme/runner/v2/runner.pb.go | 162 ++++++++++++------ .../proto/gql/runme/runner/v1/runner.graphql | 5 + .../proto/gql/runme/runner/v2/runner.graphql | 5 + .../python/runme/runner/v1/runner_pb2.py | 56 +++--- .../python/runme/runner/v1/runner_pb2.pyi | 13 +- .../python/runme/runner/v2/runner_pb2.py | 52 +++--- .../python/runme/runner/v2/runner_pb2.pyi | 13 +- .../proto/ts/runme/runner/v1/runner_pb.d.ts | 27 +++ api/gen/proto/ts/runme/runner/v1/runner_pb.js | 64 ++++++- .../proto/ts/runme/runner/v2/runner_pb.d.ts | 27 +++ api/gen/proto/ts/runme/runner/v2/runner_pb.js | 64 ++++++- api/proto/runme/runner/v1/runner.proto | 7 + api/proto/runme/runner/v2/runner.proto | 7 + cmd/environment.go | 2 +- cmd/environment_store.go | 6 +- go.mod | 2 +- go.sum | 4 +- runner/service.go | 12 +- runner/service_test.go | 23 +++ runner/session.go | 41 +++-- runner/session_test.go | 24 +++ 26 files changed, 703 insertions(+), 171 deletions(-) diff --git a/api/gen/proto/es/runme/runner/v1/runner_pb.d.ts b/api/gen/proto/es/runme/runner/v1/runner_pb.d.ts index 13cd50b3e..f72257d07 100644 --- a/api/gen/proto/es/runme/runner/v1/runner_pb.d.ts +++ b/api/gen/proto/es/runme/runner/v1/runner_pb.d.ts @@ -1416,6 +1416,11 @@ export declare type MonitorEnvStoreRequest = Message<"runme.runner.v1.MonitorEnv * @generated from field: runme.runner.v1.Session session = 1; */ session?: Session; + + /** + * @generated from field: runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicy; }; /** @@ -1426,6 +1431,11 @@ export declare type MonitorEnvStoreRequestJson = { * @generated from field: runme.runner.v1.Session session = 1; */ session?: SessionJson; + + /** + * @generated from field: runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicyJson; }; /** @@ -1434,6 +1444,42 @@ export declare type MonitorEnvStoreRequestJson = { */ export declare const MonitorEnvStoreRequestSchema: GenMessage; +/** + * @generated from message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare type MonitorEnvStoreRequest_SnapshotPolicy = Message<"runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy"> & { + /** + * @generated from field: bool reveal = 1; + */ + reveal: boolean; + + /** + * @generated from field: bool insecure = 2; + */ + insecure: boolean; +}; + +/** + * @generated from message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare type MonitorEnvStoreRequest_SnapshotPolicyJson = { + /** + * @generated from field: bool reveal = 1; + */ + reveal?: boolean; + + /** + * @generated from field: bool insecure = 2; + */ + insecure?: boolean; +}; + +/** + * Describes the message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy. + * Use `create(MonitorEnvStoreRequest_SnapshotPolicySchema)` to create a new message. + */ +export declare const MonitorEnvStoreRequest_SnapshotPolicySchema: GenMessage; + /** * @generated from message runme.runner.v1.MonitorEnvStoreResponseSnapshot */ diff --git a/api/gen/proto/es/runme/runner/v1/runner_pb.js b/api/gen/proto/es/runme/runner/v1/runner_pb.js index 7d6e8941f..5c129a9ad 100644 --- a/api/gen/proto/es/runme/runner/v1/runner_pb.js +++ b/api/gen/proto/es/runme/runner/v1/runner_pb.js @@ -9,7 +9,7 @@ import { file_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; * Describes the file runme/runner/v1/runner.proto. */ export const file_runme_runner_v1_runner = /*@__PURE__*/ - fileDesc("ChxydW5tZS9ydW5uZXIvdjEvcnVubmVyLnByb3RvEg9ydW5tZS5ydW5uZXIudjEijgEKB1Nlc3Npb24SCgoCaWQYASABKAkSDAoEZW52cxgCIAMoCRI4CghtZXRhZGF0YRgDIAMoCzImLnJ1bm1lLnJ1bm5lci52MS5TZXNzaW9uLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpYCChRDcmVhdGVTZXNzaW9uUmVxdWVzdBJFCghtZXRhZGF0YRgBIAMoCzIzLnJ1bm1lLnJ1bm5lci52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdC5NZXRhZGF0YUVudHJ5EgwKBGVudnMYAiADKAkSLgoHcHJvamVjdBgDIAEoCzIYLnJ1bm1lLnJ1bm5lci52MS5Qcm9qZWN0SACIAQESPAoOZW52X3N0b3JlX3R5cGUYBCABKA4yJC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbkVudlN0b3JlVHlwZRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCgoIX3Byb2plY3QiQgoVQ3JlYXRlU2Vzc2lvblJlc3BvbnNlEikKB3Nlc3Npb24YASABKAsyGC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbiIfChFHZXRTZXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSI/ChJHZXRTZXNzaW9uUmVzcG9uc2USKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52MS5TZXNzaW9uIhUKE0xpc3RTZXNzaW9uc1JlcXVlc3QiQgoUTGlzdFNlc3Npb25zUmVzcG9uc2USKgoIc2Vzc2lvbnMYASADKAsyGC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbiIiChREZWxldGVTZXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIXChVEZWxldGVTZXNzaW9uUmVzcG9uc2Ui0gEKB1Byb2plY3QSDAoEcm9vdBgBIAEoCRIWCg5lbnZfbG9hZF9vcmRlchgCIAMoCRIzCgplbnZfZGlyZW52GAMgASgOMh8ucnVubWUucnVubmVyLnYxLlByb2plY3QuRGlyRW52ImwKBkRpckVudhIXChNESVJfRU5WX1VOU1BFQ0lGSUVEEAASGAoURElSX0VOVl9FTkFCTEVEX1dBUk4QARIZChVESVJfRU5WX0VOQUJMRURfRVJST1IQAhIUChBESVJfRU5WX0RJU0FCTEVEEAMiOwoHV2luc2l6ZRIMCgRyb3dzGAEgASgNEgwKBGNvbHMYAiABKA0SCQoBeBgDIAEoDRIJCgF5GAQgASgNItcECg5FeGVjdXRlUmVxdWVzdBIUCgxwcm9ncmFtX25hbWUYASABKAkSEQoJYXJndW1lbnRzGAIgAygJEhEKCWRpcmVjdG9yeRgDIAEoCRIMCgRlbnZzGAQgAygJEhAKCGNvbW1hbmRzGAUgAygJEg4KBnNjcmlwdBgGIAEoCRILCgN0dHkYByABKAgSEgoKaW5wdXRfZGF0YRgIIAEoDBIqCgRzdG9wGAkgASgOMhwucnVubWUucnVubmVyLnYxLkV4ZWN1dGVTdG9wEi4KB3dpbnNpemUYCiABKAsyGC5ydW5tZS5ydW5uZXIudjEuV2luc2l6ZUgAiAEBEhIKCmJhY2tncm91bmQYCyABKAgSEgoKc2Vzc2lvbl9pZBgUIAEoCRI6ChBzZXNzaW9uX3N0cmF0ZWd5GBUgASgOMiAucnVubWUucnVubmVyLnYxLlNlc3Npb25TdHJhdGVneRIuCgdwcm9qZWN0GBYgASgLMhgucnVubWUucnVubmVyLnYxLlByb2plY3RIAYgBARIZChFzdG9yZV9sYXN0X291dHB1dBgXIAEoCBIyCgxjb21tYW5kX21vZGUYGCABKA4yHC5ydW5tZS5ydW5uZXIudjEuQ29tbWFuZE1vZGUSEwoLbGFuZ3VhZ2VfaWQYGSABKAkSFgoOZmlsZV9leHRlbnNpb24YGiABKAkSEAoIa25vd25faWQYGyABKAkSEgoKa25vd25fbmFtZRgcIAEoCRIOCgZydW5faWQYHSABKAlCCgoIX3dpbnNpemVCCgoIX3Byb2plY3QiGQoKUHJvY2Vzc1BJRBILCgNwaWQYASABKAMiqQEKD0V4ZWN1dGVSZXNwb25zZRIvCglleGl0X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSEwoLc3Rkb3V0X2RhdGEYAiABKAwSEwoLc3RkZXJyX2RhdGEYAyABKAwSKAoDcGlkGAQgASgLMhsucnVubWUucnVubmVyLnYxLlByb2Nlc3NQSUQSEQoJbWltZV90eXBlGAUgASgJIioKGVJlc29sdmVQcm9ncmFtQ29tbWFuZExpc3QSDQoFbGluZXMYASADKAkiwAQKFVJlc29sdmVQcm9ncmFtUmVxdWVzdBI+Cghjb21tYW5kcxgBIAEoCzIqLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0SAASEAoGc2NyaXB0GAIgASgJSAASOQoEbW9kZRgDIAEoDjIrLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlcXVlc3QuTW9kZRILCgNlbnYYBCADKAkSEgoKc2Vzc2lvbl9pZBgFIAEoCRI6ChBzZXNzaW9uX3N0cmF0ZWd5GAYgASgOMiAucnVubWUucnVubmVyLnYxLlNlc3Npb25TdHJhdGVneRIuCgdwcm9qZWN0GAcgASgLMhgucnVubWUucnVubmVyLnYxLlByb2plY3RIAYgBARITCgtsYW5ndWFnZV9pZBgIIAEoCRJDCglyZXRlbnRpb24YCSABKA4yMC5ydW5tZS5ydW5uZXIudjEuUmVzb2x2ZVByb2dyYW1SZXF1ZXN0LlJldGVudGlvbiJECgRNb2RlEhQKEE1PREVfVU5TUEVDSUZJRUQQABITCg9NT0RFX1BST01QVF9BTEwQARIRCg1NT0RFX1NLSVBfQUxMEAIiVwoJUmV0ZW50aW9uEhkKFVJFVEVOVElPTl9VTlNQRUNJRklFRBAAEhcKE1JFVEVOVElPTl9GSVJTVF9SVU4QARIWChJSRVRFTlRJT05fTEFTVF9SVU4QAkIICgZzb3VyY2VCCgoIX3Byb2plY3Qi2gMKFlJlc29sdmVQcm9ncmFtUmVzcG9uc2USDgoGc2NyaXB0GAEgASgJEjwKCGNvbW1hbmRzGAIgASgLMioucnVubWUucnVubmVyLnYxLlJlc29sdmVQcm9ncmFtQ29tbWFuZExpc3QSPwoEdmFycxgDIAMoCzIxLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlLlZhclJlc3VsdBqJAQoJVmFyUmVzdWx0Ej4KBnN0YXR1cxgBIAEoDjIuLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlLlN0YXR1cxIMCgRuYW1lGAIgASgJEhYKDm9yaWdpbmFsX3ZhbHVlGAMgASgJEhYKDnJlc29sdmVkX3ZhbHVlGAQgASgJIqQBCgZTdGF0dXMSFgoSU1RBVFVTX1VOU1BFQ0lGSUVEEAASIgoeU1RBVFVTX1VOUkVTT0xWRURfV0lUSF9NRVNTQUdFEAESJgoiU1RBVFVTX1VOUkVTT0xWRURfV0lUSF9QTEFDRUhPTERFUhACEhMKD1NUQVRVU19SRVNPTFZFRBADEiEKHVNUQVRVU19VTlJFU09MVkVEX1dJVEhfU0VDUkVUEAQiQwoWTW9uaXRvckVudlN0b3JlUmVxdWVzdBIpCgdzZXNzaW9uGAEgASgLMhgucnVubWUucnVubmVyLnYxLlNlc3Npb24iwgQKH01vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3QSSgoEZW52cxgBIAMoCzI8LnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90LlNuYXBzaG90RW52Gs4CCgtTbmFwc2hvdEVudhJHCgZzdGF0dXMYASABKA4yNy5ydW5tZS5ydW5uZXIudjEuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdC5TdGF0dXMSDAoEbmFtZRgCIAEoCRIMCgRzcGVjGAMgASgJEg4KBm9yaWdpbhgEIAEoCRIWCg5vcmlnaW5hbF92YWx1ZRgFIAEoCRIWCg5yZXNvbHZlZF92YWx1ZRgGIAEoCRITCgtjcmVhdGVfdGltZRgHIAEoCRITCgt1cGRhdGVfdGltZRgIIAEoCRJGCgZlcnJvcnMYCSADKAsyNi5ydW5tZS5ydW5uZXIudjEuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdC5FcnJvchITCgtpc19yZXF1aXJlZBgKIAEoCBITCgtkZXNjcmlwdGlvbhgLIAEoCRomCgVFcnJvchIMCgRjb2RlGAEgASgNEg8KB21lc3NhZ2UYAiABKAkiWgoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhIKDlNUQVRVU19MSVRFUkFMEAESEQoNU1RBVFVTX0hJRERFThACEhEKDVNUQVRVU19NQVNLRUQQAyKbAQoXTW9uaXRvckVudlN0b3JlUmVzcG9uc2USMgoEdHlwZRgBIAEoDjIkLnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVUeXBlEkQKCHNuYXBzaG90GAIgASgLMjAucnVubWUucnVubmVyLnYxLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3RIAEIGCgRkYXRhKl0KE1Nlc3Npb25FbnZTdG9yZVR5cGUSJgoiU0VTU0lPTl9FTlZfU1RPUkVfVFlQRV9VTlNQRUNJRklFRBAAEh4KGlNFU1NJT05fRU5WX1NUT1JFX1RZUEVfT1dMEAEqXgoLRXhlY3V0ZVN0b3ASHAoYRVhFQ1VURV9TVE9QX1VOU1BFQ0lGSUVEEAASGgoWRVhFQ1VURV9TVE9QX0lOVEVSUlVQVBABEhUKEUVYRUNVVEVfU1RPUF9LSUxMEAIqmgEKC0NvbW1hbmRNb2RlEhwKGENPTU1BTkRfTU9ERV9VTlNQRUNJRklFRBAAEh0KGUNPTU1BTkRfTU9ERV9JTkxJTkVfU0hFTEwQARIaChZDT01NQU5EX01PREVfVEVNUF9GSUxFEAISGQoVQ09NTUFORF9NT0RFX1RFUk1JTkFMEAMSFwoTQ09NTUFORF9NT0RFX0RBR0dFUhAEKlUKD1Nlc3Npb25TdHJhdGVneRIgChxTRVNTSU9OX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASIAocU0VTU0lPTl9TVFJBVEVHWV9NT1NUX1JFQ0VOVBABKmIKE01vbml0b3JFbnZTdG9yZVR5cGUSJgoiTU9OSVRPUl9FTlZfU1RPUkVfVFlQRV9VTlNQRUNJRklFRBAAEiMKH01PTklUT1JfRU5WX1NUT1JFX1RZUEVfU05BUFNIT1QQATKuBQoNUnVubmVyU2VydmljZRJgCg1DcmVhdGVTZXNzaW9uEiUucnVubWUucnVubmVyLnYxLkNyZWF0ZVNlc3Npb25SZXF1ZXN0GiYucnVubWUucnVubmVyLnYxLkNyZWF0ZVNlc3Npb25SZXNwb25zZSIAElcKCkdldFNlc3Npb24SIi5ydW5tZS5ydW5uZXIudjEuR2V0U2Vzc2lvblJlcXVlc3QaIy5ydW5tZS5ydW5uZXIudjEuR2V0U2Vzc2lvblJlc3BvbnNlIgASXQoMTGlzdFNlc3Npb25zEiQucnVubWUucnVubmVyLnYxLkxpc3RTZXNzaW9uc1JlcXVlc3QaJS5ydW5tZS5ydW5uZXIudjEuTGlzdFNlc3Npb25zUmVzcG9uc2UiABJgCg1EZWxldGVTZXNzaW9uEiUucnVubWUucnVubmVyLnYxLkRlbGV0ZVNlc3Npb25SZXF1ZXN0GiYucnVubWUucnVubmVyLnYxLkRlbGV0ZVNlc3Npb25SZXNwb25zZSIAEmgKD01vbml0b3JFbnZTdG9yZRInLnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVSZXF1ZXN0GigucnVubWUucnVubmVyLnYxLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlIgAwARJSCgdFeGVjdXRlEh8ucnVubWUucnVubmVyLnYxLkV4ZWN1dGVSZXF1ZXN0GiAucnVubWUucnVubmVyLnYxLkV4ZWN1dGVSZXNwb25zZSIAKAEwARJjCg5SZXNvbHZlUHJvZ3JhbRImLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlcXVlc3QaJy5ydW5tZS5ydW5uZXIudjEuUmVzb2x2ZVByb2dyYW1SZXNwb25zZSIAQkhaRmdpdGh1Yi5jb20vcnVubWVkZXYvcnVubWUvdjMvYXBpL2dlbi9wcm90by9nby9ydW5tZS9ydW5uZXIvdjE7cnVubmVydjFiBnByb3RvMw", [file_google_protobuf_wrappers]); + fileDesc("ChxydW5tZS9ydW5uZXIvdjEvcnVubmVyLnByb3RvEg9ydW5tZS5ydW5uZXIudjEijgEKB1Nlc3Npb24SCgoCaWQYASABKAkSDAoEZW52cxgCIAMoCRI4CghtZXRhZGF0YRgDIAMoCzImLnJ1bm1lLnJ1bm5lci52MS5TZXNzaW9uLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpYCChRDcmVhdGVTZXNzaW9uUmVxdWVzdBJFCghtZXRhZGF0YRgBIAMoCzIzLnJ1bm1lLnJ1bm5lci52MS5DcmVhdGVTZXNzaW9uUmVxdWVzdC5NZXRhZGF0YUVudHJ5EgwKBGVudnMYAiADKAkSLgoHcHJvamVjdBgDIAEoCzIYLnJ1bm1lLnJ1bm5lci52MS5Qcm9qZWN0SACIAQESPAoOZW52X3N0b3JlX3R5cGUYBCABKA4yJC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbkVudlN0b3JlVHlwZRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCgoIX3Byb2plY3QiQgoVQ3JlYXRlU2Vzc2lvblJlc3BvbnNlEikKB3Nlc3Npb24YASABKAsyGC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbiIfChFHZXRTZXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSI/ChJHZXRTZXNzaW9uUmVzcG9uc2USKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52MS5TZXNzaW9uIhUKE0xpc3RTZXNzaW9uc1JlcXVlc3QiQgoUTGlzdFNlc3Npb25zUmVzcG9uc2USKgoIc2Vzc2lvbnMYASADKAsyGC5ydW5tZS5ydW5uZXIudjEuU2Vzc2lvbiIiChREZWxldGVTZXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIXChVEZWxldGVTZXNzaW9uUmVzcG9uc2Ui0gEKB1Byb2plY3QSDAoEcm9vdBgBIAEoCRIWCg5lbnZfbG9hZF9vcmRlchgCIAMoCRIzCgplbnZfZGlyZW52GAMgASgOMh8ucnVubWUucnVubmVyLnYxLlByb2plY3QuRGlyRW52ImwKBkRpckVudhIXChNESVJfRU5WX1VOU1BFQ0lGSUVEEAASGAoURElSX0VOVl9FTkFCTEVEX1dBUk4QARIZChVESVJfRU5WX0VOQUJMRURfRVJST1IQAhIUChBESVJfRU5WX0RJU0FCTEVEEAMiOwoHV2luc2l6ZRIMCgRyb3dzGAEgASgNEgwKBGNvbHMYAiABKA0SCQoBeBgDIAEoDRIJCgF5GAQgASgNItcECg5FeGVjdXRlUmVxdWVzdBIUCgxwcm9ncmFtX25hbWUYASABKAkSEQoJYXJndW1lbnRzGAIgAygJEhEKCWRpcmVjdG9yeRgDIAEoCRIMCgRlbnZzGAQgAygJEhAKCGNvbW1hbmRzGAUgAygJEg4KBnNjcmlwdBgGIAEoCRILCgN0dHkYByABKAgSEgoKaW5wdXRfZGF0YRgIIAEoDBIqCgRzdG9wGAkgASgOMhwucnVubWUucnVubmVyLnYxLkV4ZWN1dGVTdG9wEi4KB3dpbnNpemUYCiABKAsyGC5ydW5tZS5ydW5uZXIudjEuV2luc2l6ZUgAiAEBEhIKCmJhY2tncm91bmQYCyABKAgSEgoKc2Vzc2lvbl9pZBgUIAEoCRI6ChBzZXNzaW9uX3N0cmF0ZWd5GBUgASgOMiAucnVubWUucnVubmVyLnYxLlNlc3Npb25TdHJhdGVneRIuCgdwcm9qZWN0GBYgASgLMhgucnVubWUucnVubmVyLnYxLlByb2plY3RIAYgBARIZChFzdG9yZV9sYXN0X291dHB1dBgXIAEoCBIyCgxjb21tYW5kX21vZGUYGCABKA4yHC5ydW5tZS5ydW5uZXIudjEuQ29tbWFuZE1vZGUSEwoLbGFuZ3VhZ2VfaWQYGSABKAkSFgoOZmlsZV9leHRlbnNpb24YGiABKAkSEAoIa25vd25faWQYGyABKAkSEgoKa25vd25fbmFtZRgcIAEoCRIOCgZydW5faWQYHSABKAlCCgoIX3dpbnNpemVCCgoIX3Byb2plY3QiGQoKUHJvY2Vzc1BJRBILCgNwaWQYASABKAMiqQEKD0V4ZWN1dGVSZXNwb25zZRIvCglleGl0X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSEwoLc3Rkb3V0X2RhdGEYAiABKAwSEwoLc3RkZXJyX2RhdGEYAyABKAwSKAoDcGlkGAQgASgLMhsucnVubWUucnVubmVyLnYxLlByb2Nlc3NQSUQSEQoJbWltZV90eXBlGAUgASgJIioKGVJlc29sdmVQcm9ncmFtQ29tbWFuZExpc3QSDQoFbGluZXMYASADKAkiwAQKFVJlc29sdmVQcm9ncmFtUmVxdWVzdBI+Cghjb21tYW5kcxgBIAEoCzIqLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0SAASEAoGc2NyaXB0GAIgASgJSAASOQoEbW9kZRgDIAEoDjIrLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlcXVlc3QuTW9kZRILCgNlbnYYBCADKAkSEgoKc2Vzc2lvbl9pZBgFIAEoCRI6ChBzZXNzaW9uX3N0cmF0ZWd5GAYgASgOMiAucnVubWUucnVubmVyLnYxLlNlc3Npb25TdHJhdGVneRIuCgdwcm9qZWN0GAcgASgLMhgucnVubWUucnVubmVyLnYxLlByb2plY3RIAYgBARITCgtsYW5ndWFnZV9pZBgIIAEoCRJDCglyZXRlbnRpb24YCSABKA4yMC5ydW5tZS5ydW5uZXIudjEuUmVzb2x2ZVByb2dyYW1SZXF1ZXN0LlJldGVudGlvbiJECgRNb2RlEhQKEE1PREVfVU5TUEVDSUZJRUQQABITCg9NT0RFX1BST01QVF9BTEwQARIRCg1NT0RFX1NLSVBfQUxMEAIiVwoJUmV0ZW50aW9uEhkKFVJFVEVOVElPTl9VTlNQRUNJRklFRBAAEhcKE1JFVEVOVElPTl9GSVJTVF9SVU4QARIWChJSRVRFTlRJT05fTEFTVF9SVU4QAkIICgZzb3VyY2VCCgoIX3Byb2plY3Qi2gMKFlJlc29sdmVQcm9ncmFtUmVzcG9uc2USDgoGc2NyaXB0GAEgASgJEjwKCGNvbW1hbmRzGAIgASgLMioucnVubWUucnVubmVyLnYxLlJlc29sdmVQcm9ncmFtQ29tbWFuZExpc3QSPwoEdmFycxgDIAMoCzIxLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlLlZhclJlc3VsdBqJAQoJVmFyUmVzdWx0Ej4KBnN0YXR1cxgBIAEoDjIuLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlLlN0YXR1cxIMCgRuYW1lGAIgASgJEhYKDm9yaWdpbmFsX3ZhbHVlGAMgASgJEhYKDnJlc29sdmVkX3ZhbHVlGAQgASgJIqQBCgZTdGF0dXMSFgoSU1RBVFVTX1VOU1BFQ0lGSUVEEAASIgoeU1RBVFVTX1VOUkVTT0xWRURfV0lUSF9NRVNTQUdFEAESJgoiU1RBVFVTX1VOUkVTT0xWRURfV0lUSF9QTEFDRUhPTERFUhACEhMKD1NUQVRVU19SRVNPTFZFRBADEiEKHVNUQVRVU19VTlJFU09MVkVEX1dJVEhfU0VDUkVUEAQiyAEKFk1vbml0b3JFbnZTdG9yZVJlcXVlc3QSKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52MS5TZXNzaW9uEk8KD3NuYXBzaG90X3BvbGljeRgCIAEoCzI2LnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVSZXF1ZXN0LlNuYXBzaG90UG9saWN5GjIKDlNuYXBzaG90UG9saWN5Eg4KBnJldmVhbBgBIAEoCBIQCghpbnNlY3VyZRgCIAEoCCLCBAofTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdBJKCgRlbnZzGAEgAygLMjwucnVubWUucnVubmVyLnYxLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3QuU25hcHNob3RFbnYazgIKC1NuYXBzaG90RW52EkcKBnN0YXR1cxgBIAEoDjI3LnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90LlN0YXR1cxIMCgRuYW1lGAIgASgJEgwKBHNwZWMYAyABKAkSDgoGb3JpZ2luGAQgASgJEhYKDm9yaWdpbmFsX3ZhbHVlGAUgASgJEhYKDnJlc29sdmVkX3ZhbHVlGAYgASgJEhMKC2NyZWF0ZV90aW1lGAcgASgJEhMKC3VwZGF0ZV90aW1lGAggASgJEkYKBmVycm9ycxgJIAMoCzI2LnJ1bm1lLnJ1bm5lci52MS5Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90LkVycm9yEhMKC2lzX3JlcXVpcmVkGAogASgIEhMKC2Rlc2NyaXB0aW9uGAsgASgJGiYKBUVycm9yEgwKBGNvZGUYASABKA0SDwoHbWVzc2FnZRgCIAEoCSJaCgZTdGF0dXMSFgoSU1RBVFVTX1VOU1BFQ0lGSUVEEAASEgoOU1RBVFVTX0xJVEVSQUwQARIRCg1TVEFUVVNfSElEREVOEAISEQoNU1RBVFVTX01BU0tFRBADIpsBChdNb25pdG9yRW52U3RvcmVSZXNwb25zZRIyCgR0eXBlGAEgASgOMiQucnVubWUucnVubmVyLnYxLk1vbml0b3JFbnZTdG9yZVR5cGUSRAoIc25hcHNob3QYAiABKAsyMC5ydW5tZS5ydW5uZXIudjEuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdEgAQgYKBGRhdGEqXQoTU2Vzc2lvbkVudlN0b3JlVHlwZRImCiJTRVNTSU9OX0VOVl9TVE9SRV9UWVBFX1VOU1BFQ0lGSUVEEAASHgoaU0VTU0lPTl9FTlZfU1RPUkVfVFlQRV9PV0wQASpeCgtFeGVjdXRlU3RvcBIcChhFWEVDVVRFX1NUT1BfVU5TUEVDSUZJRUQQABIaChZFWEVDVVRFX1NUT1BfSU5URVJSVVBUEAESFQoRRVhFQ1VURV9TVE9QX0tJTEwQAiqaAQoLQ29tbWFuZE1vZGUSHAoYQ09NTUFORF9NT0RFX1VOU1BFQ0lGSUVEEAASHQoZQ09NTUFORF9NT0RFX0lOTElORV9TSEVMTBABEhoKFkNPTU1BTkRfTU9ERV9URU1QX0ZJTEUQAhIZChVDT01NQU5EX01PREVfVEVSTUlOQUwQAxIXChNDT01NQU5EX01PREVfREFHR0VSEAQqVQoPU2Vzc2lvblN0cmF0ZWd5EiAKHFNFU1NJT05fU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIgChxTRVNTSU9OX1NUUkFURUdZX01PU1RfUkVDRU5UEAEqYgoTTW9uaXRvckVudlN0b3JlVHlwZRImCiJNT05JVE9SX0VOVl9TVE9SRV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTU9OSVRPUl9FTlZfU1RPUkVfVFlQRV9TTkFQU0hPVBABMq4FCg1SdW5uZXJTZXJ2aWNlEmAKDUNyZWF0ZVNlc3Npb24SJS5ydW5tZS5ydW5uZXIudjEuQ3JlYXRlU2Vzc2lvblJlcXVlc3QaJi5ydW5tZS5ydW5uZXIudjEuQ3JlYXRlU2Vzc2lvblJlc3BvbnNlIgASVwoKR2V0U2Vzc2lvbhIiLnJ1bm1lLnJ1bm5lci52MS5HZXRTZXNzaW9uUmVxdWVzdBojLnJ1bm1lLnJ1bm5lci52MS5HZXRTZXNzaW9uUmVzcG9uc2UiABJdCgxMaXN0U2Vzc2lvbnMSJC5ydW5tZS5ydW5uZXIudjEuTGlzdFNlc3Npb25zUmVxdWVzdBolLnJ1bm1lLnJ1bm5lci52MS5MaXN0U2Vzc2lvbnNSZXNwb25zZSIAEmAKDURlbGV0ZVNlc3Npb24SJS5ydW5tZS5ydW5uZXIudjEuRGVsZXRlU2Vzc2lvblJlcXVlc3QaJi5ydW5tZS5ydW5uZXIudjEuRGVsZXRlU2Vzc2lvblJlc3BvbnNlIgASaAoPTW9uaXRvckVudlN0b3JlEicucnVubWUucnVubmVyLnYxLk1vbml0b3JFbnZTdG9yZVJlcXVlc3QaKC5ydW5tZS5ydW5uZXIudjEuTW9uaXRvckVudlN0b3JlUmVzcG9uc2UiADABElIKB0V4ZWN1dGUSHy5ydW5tZS5ydW5uZXIudjEuRXhlY3V0ZVJlcXVlc3QaIC5ydW5tZS5ydW5uZXIudjEuRXhlY3V0ZVJlc3BvbnNlIgAoATABEmMKDlJlc29sdmVQcm9ncmFtEiYucnVubWUucnVubmVyLnYxLlJlc29sdmVQcm9ncmFtUmVxdWVzdBonLnJ1bm1lLnJ1bm5lci52MS5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlIgBCSFpGZ2l0aHViLmNvbS9ydW5tZWRldi9ydW5tZS92My9hcGkvZ2VuL3Byb3RvL2dvL3J1bm1lL3J1bm5lci92MTtydW5uZXJ2MWIGcHJvdG8z", [file_google_protobuf_wrappers]); /** * Describes the message runme.runner.v1.Session. @@ -192,6 +192,13 @@ export const ResolveProgramResponse_Status = /*@__PURE__*/ export const MonitorEnvStoreRequestSchema = /*@__PURE__*/ messageDesc(file_runme_runner_v1_runner, 17); +/** + * Describes the message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy. + * Use `create(MonitorEnvStoreRequest_SnapshotPolicySchema)` to create a new message. + */ +export const MonitorEnvStoreRequest_SnapshotPolicySchema = /*@__PURE__*/ + messageDesc(file_runme_runner_v1_runner, 17, 0); + /** * Describes the message runme.runner.v1.MonitorEnvStoreResponseSnapshot. * Use `create(MonitorEnvStoreResponseSnapshotSchema)` to create a new message. diff --git a/api/gen/proto/es/runme/runner/v2/runner_pb.d.ts b/api/gen/proto/es/runme/runner/v2/runner_pb.d.ts index 7eb94effc..7dea41009 100644 --- a/api/gen/proto/es/runme/runner/v2/runner_pb.d.ts +++ b/api/gen/proto/es/runme/runner/v2/runner_pb.d.ts @@ -1347,6 +1347,11 @@ export declare type MonitorEnvStoreRequest = Message<"runme.runner.v2.MonitorEnv * @generated from field: runme.runner.v2.Session session = 1; */ session?: Session; + + /** + * @generated from field: runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicy; }; /** @@ -1357,6 +1362,11 @@ export declare type MonitorEnvStoreRequestJson = { * @generated from field: runme.runner.v2.Session session = 1; */ session?: SessionJson; + + /** + * @generated from field: runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicyJson; }; /** @@ -1365,6 +1375,42 @@ export declare type MonitorEnvStoreRequestJson = { */ export declare const MonitorEnvStoreRequestSchema: GenMessage; +/** + * @generated from message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare type MonitorEnvStoreRequest_SnapshotPolicy = Message<"runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy"> & { + /** + * @generated from field: bool reveal = 1; + */ + reveal: boolean; + + /** + * @generated from field: bool insecure = 2; + */ + insecure: boolean; +}; + +/** + * @generated from message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare type MonitorEnvStoreRequest_SnapshotPolicyJson = { + /** + * @generated from field: bool reveal = 1; + */ + reveal?: boolean; + + /** + * @generated from field: bool insecure = 2; + */ + insecure?: boolean; +}; + +/** + * Describes the message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy. + * Use `create(MonitorEnvStoreRequest_SnapshotPolicySchema)` to create a new message. + */ +export declare const MonitorEnvStoreRequest_SnapshotPolicySchema: GenMessage; + /** * @generated from message runme.runner.v2.MonitorEnvStoreResponseSnapshot */ diff --git a/api/gen/proto/es/runme/runner/v2/runner_pb.js b/api/gen/proto/es/runme/runner/v2/runner_pb.js index 07788a28b..41f8c97e9 100644 --- a/api/gen/proto/es/runme/runner/v2/runner_pb.js +++ b/api/gen/proto/es/runme/runner/v2/runner_pb.js @@ -10,7 +10,7 @@ import { file_runme_runner_v2_config } from "./config_pb"; * Describes the file runme/runner/v2/runner.proto. */ export const file_runme_runner_v2_runner = /*@__PURE__*/ - fileDesc("ChxydW5tZS9ydW5uZXIvdjIvcnVubmVyLnByb3RvEg9ydW5tZS5ydW5uZXIudjIiLwoHUHJvamVjdBIMCgRyb290GAEgASgJEhYKDmVudl9sb2FkX29yZGVyGAIgAygJIo0BCgdTZXNzaW9uEgoKAmlkGAEgASgJEgsKA2VudhgCIAMoCRI4CghtZXRhZGF0YRgDIAMoCzImLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIrIFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBJFCghtZXRhZGF0YRgBIAMoCzIzLnJ1bm1lLnJ1bm5lci52Mi5DcmVhdGVTZXNzaW9uUmVxdWVzdC5NZXRhZGF0YUVudHJ5EgsKA2VudhgCIAMoCRIuCgdwcm9qZWN0GAMgASgLMhgucnVubWUucnVubmVyLnYyLlByb2plY3RIAIgBARJBCg5lbnZfc3RvcmVfdHlwZRgEIAEoDjIkLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uRW52U3RvcmVUeXBlSAGIAQESPAoGY29uZmlnGAUgASgLMiwucnVubWUucnVubmVyLnYyLkNyZWF0ZVNlc3Npb25SZXF1ZXN0LkNvbmZpZxovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaxAIKBkNvbmZpZxJBCg5lbnZfc3RvcmVfdHlwZRgBIAEoDjIkLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uRW52U3RvcmVUeXBlSACIAQESYwoRZW52X3N0b3JlX3NlZWRpbmcYAiABKA4yQy5ydW5tZS5ydW5uZXIudjIuQ3JlYXRlU2Vzc2lvblJlcXVlc3QuQ29uZmlnLlNlc3Npb25FbnZTdG9yZVNlZWRpbmdIAYgBASJpChZTZXNzaW9uRW52U3RvcmVTZWVkaW5nEikKJVNFU1NJT05fRU5WX1NUT1JFX1NFRURJTkdfVU5TUEVDSUZJRUQQABIkCiBTRVNTSU9OX0VOVl9TVE9SRV9TRUVESU5HX1NZU1RFTRABQhEKD19lbnZfc3RvcmVfdHlwZUIUChJfZW52X3N0b3JlX3NlZWRpbmdCCgoIX3Byb2plY3RCEQoPX2Vudl9zdG9yZV90eXBlIkIKFUNyZWF0ZVNlc3Npb25SZXNwb25zZRIpCgdzZXNzaW9uGAEgASgLMhgucnVubWUucnVubmVyLnYyLlNlc3Npb24iHwoRR2V0U2Vzc2lvblJlcXVlc3QSCgoCaWQYASABKAkiPwoSR2V0U2Vzc2lvblJlc3BvbnNlEikKB3Nlc3Npb24YASABKAsyGC5ydW5tZS5ydW5uZXIudjIuU2Vzc2lvbiIVChNMaXN0U2Vzc2lvbnNSZXF1ZXN0IkIKFExpc3RTZXNzaW9uc1Jlc3BvbnNlEioKCHNlc3Npb25zGAEgAygLMhgucnVubWUucnVubmVyLnYyLlNlc3Npb24i4wEKFFVwZGF0ZVNlc3Npb25SZXF1ZXN0EgoKAmlkGAEgASgJEkUKCG1ldGFkYXRhGAIgAygLMjMucnVubWUucnVubmVyLnYyLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Lk1ldGFkYXRhRW50cnkSCwoDZW52GAMgAygJEi4KB3Byb2plY3QYBCABKAsyGC5ydW5tZS5ydW5uZXIudjIuUHJvamVjdEgAiAEBGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIKCghfcHJvamVjdCJCChVVcGRhdGVTZXNzaW9uUmVzcG9uc2USKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uIiIKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EgoKAmlkGAEgASgJIhcKFURlbGV0ZVNlc3Npb25SZXNwb25zZSI7CgdXaW5zaXplEgwKBHJvd3MYASABKA0SDAoEY29scxgCIAEoDRIJCgF4GAMgASgNEgkKAXkYBCABKA0i5QIKDkV4ZWN1dGVSZXF1ZXN0Ei4KBmNvbmZpZxgBIAEoCzIeLnJ1bm1lLnJ1bm5lci52Mi5Qcm9ncmFtQ29uZmlnEhIKCmlucHV0X2RhdGEYCCABKAwSKgoEc3RvcBgJIAEoDjIcLnJ1bm1lLnJ1bm5lci52Mi5FeGVjdXRlU3RvcBIuCgd3aW5zaXplGAogASgLMhgucnVubWUucnVubmVyLnYyLldpbnNpemVIAIgBARISCgpzZXNzaW9uX2lkGBQgASgJEjoKEHNlc3Npb25fc3RyYXRlZ3kYFSABKA4yIC5ydW5tZS5ydW5uZXIudjIuU2Vzc2lvblN0cmF0ZWd5Ei4KB3Byb2plY3QYFiABKAsyGC5ydW5tZS5ydW5uZXIudjIuUHJvamVjdEgBiAEBEhsKE3N0b3JlX3N0ZG91dF9pbl9lbnYYFyABKAhCCgoIX3dpbnNpemVCCgoIX3Byb2plY3QihwIKD0V4ZWN1dGVSZXNwb25zZRIvCglleGl0X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSEwoLc3Rkb3V0X2RhdGEYAiABKAwSEwoLc3RkZXJyX2RhdGEYAyABKAwSKQoDcGlkGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlEhEKCW1pbWVfdHlwZRgFIAEoCRIxCgNwd2QYByABKAsyJC5ydW5tZS5ydW5uZXIudjIuRXhlY3V0ZVJlc3BvbnNlLlB3ZBooCgNQd2QSDwoHY3VycmVudBgBIAEoCRIQCghwcmV2aW91cxgCIAEoCSIqChlSZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0Eg0KBWxpbmVzGAEgAygJIsAEChVSZXNvbHZlUHJvZ3JhbVJlcXVlc3QSPgoIY29tbWFuZHMYASABKAsyKi5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1Db21tYW5kTGlzdEgAEhAKBnNjcmlwdBgCIAEoCUgAEjkKBG1vZGUYAyABKA4yKy5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXF1ZXN0Lk1vZGUSCwoDZW52GAQgAygJEhIKCnNlc3Npb25faWQYBSABKAkSOgoQc2Vzc2lvbl9zdHJhdGVneRgGIAEoDjIgLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uU3RyYXRlZ3kSLgoHcHJvamVjdBgHIAEoCzIYLnJ1bm1lLnJ1bm5lci52Mi5Qcm9qZWN0SAGIAQESEwoLbGFuZ3VhZ2VfaWQYCCABKAkSQwoJcmV0ZW50aW9uGAkgASgOMjAucnVubWUucnVubmVyLnYyLlJlc29sdmVQcm9ncmFtUmVxdWVzdC5SZXRlbnRpb24iRAoETW9kZRIUChBNT0RFX1VOU1BFQ0lGSUVEEAASEwoPTU9ERV9QUk9NUFRfQUxMEAESEQoNTU9ERV9TS0lQX0FMTBACIlcKCVJldGVudGlvbhIZChVSRVRFTlRJT05fVU5TUEVDSUZJRUQQABIXChNSRVRFTlRJT05fRklSU1RfUlVOEAESFgoSUkVURU5USU9OX0xBU1RfUlVOEAJCCAoGc291cmNlQgoKCF9wcm9qZWN0ItoDChZSZXNvbHZlUHJvZ3JhbVJlc3BvbnNlEg4KBnNjcmlwdBgBIAEoCRI8Cghjb21tYW5kcxgCIAEoCzIqLnJ1bm1lLnJ1bm5lci52Mi5SZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0Ej8KBHZhcnMYAyADKAsyMS5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXNwb25zZS5WYXJSZXN1bHQaiQEKCVZhclJlc3VsdBI+CgZzdGF0dXMYASABKA4yLi5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXNwb25zZS5TdGF0dXMSDAoEbmFtZRgCIAEoCRIWCg5vcmlnaW5hbF92YWx1ZRgDIAEoCRIWCg5yZXNvbHZlZF92YWx1ZRgEIAEoCSKkAQoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhMKD1NUQVRVU19SRVNPTFZFRBABEiIKHlNUQVRVU19VTlJFU09MVkVEX1dJVEhfTUVTU0FHRRACEiYKIlNUQVRVU19VTlJFU09MVkVEX1dJVEhfUExBQ0VIT0xERVIQAxIhCh1TVEFUVVNfVU5SRVNPTFZFRF9XSVRIX1NFQ1JFVBAEIkMKFk1vbml0b3JFbnZTdG9yZVJlcXVlc3QSKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uIsIECh9Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90EkoKBGVudnMYASADKAsyPC5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdC5TbmFwc2hvdEVudhrOAgoLU25hcHNob3RFbnYSRwoGc3RhdHVzGAEgASgOMjcucnVubWUucnVubmVyLnYyLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3QuU3RhdHVzEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDAoEc3BlYxgEIAEoCRITCgtpc19yZXF1aXJlZBgFIAEoCBIOCgZvcmlnaW4YBiABKAkSFgoOb3JpZ2luYWxfdmFsdWUYByABKAkSFgoOcmVzb2x2ZWRfdmFsdWUYCCABKAkSEwoLY3JlYXRlX3RpbWUYCSABKAkSEwoLdXBkYXRlX3RpbWUYCiABKAkSRgoGZXJyb3JzGAsgAygLMjYucnVubWUucnVubmVyLnYyLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3QuRXJyb3IaJgoFRXJyb3ISDAoEY29kZRgBIAEoDRIPCgdtZXNzYWdlGAIgASgJIloKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfTElURVJBTBABEhEKDVNUQVRVU19ISURERU4QAhIRCg1TVEFUVVNfTUFTS0VEEAMimwEKF01vbml0b3JFbnZTdG9yZVJlc3BvbnNlEjIKBHR5cGUYASABKA4yJC5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlVHlwZRJECghzbmFwc2hvdBgCIAEoCzIwLnJ1bm1lLnJ1bm5lci52Mi5Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90SABCBgoEZGF0YSpdChNTZXNzaW9uRW52U3RvcmVUeXBlEiYKIlNFU1NJT05fRU5WX1NUT1JFX1RZUEVfVU5TUEVDSUZJRUQQABIeChpTRVNTSU9OX0VOVl9TVE9SRV9UWVBFX09XTBABKl4KC0V4ZWN1dGVTdG9wEhwKGEVYRUNVVEVfU1RPUF9VTlNQRUNJRklFRBAAEhoKFkVYRUNVVEVfU1RPUF9JTlRFUlJVUFQQARIVChFFWEVDVVRFX1NUT1BfS0lMTBACKlUKD1Nlc3Npb25TdHJhdGVneRIgChxTRVNTSU9OX1NUUkFURUdZX1VOU1BFQ0lGSUVEEAASIAocU0VTU0lPTl9TVFJBVEVHWV9NT1NUX1JFQ0VOVBABKmIKE01vbml0b3JFbnZTdG9yZVR5cGUSJgoiTU9OSVRPUl9FTlZfU1RPUkVfVFlQRV9VTlNQRUNJRklFRBAAEiMKH01PTklUT1JfRU5WX1NUT1JFX1RZUEVfU05BUFNIT1QQATKQBgoNUnVubmVyU2VydmljZRJgCg1DcmVhdGVTZXNzaW9uEiUucnVubWUucnVubmVyLnYyLkNyZWF0ZVNlc3Npb25SZXF1ZXN0GiYucnVubWUucnVubmVyLnYyLkNyZWF0ZVNlc3Npb25SZXNwb25zZSIAElcKCkdldFNlc3Npb24SIi5ydW5tZS5ydW5uZXIudjIuR2V0U2Vzc2lvblJlcXVlc3QaIy5ydW5tZS5ydW5uZXIudjIuR2V0U2Vzc2lvblJlc3BvbnNlIgASXQoMTGlzdFNlc3Npb25zEiQucnVubWUucnVubmVyLnYyLkxpc3RTZXNzaW9uc1JlcXVlc3QaJS5ydW5tZS5ydW5uZXIudjIuTGlzdFNlc3Npb25zUmVzcG9uc2UiABJgCg1VcGRhdGVTZXNzaW9uEiUucnVubWUucnVubmVyLnYyLlVwZGF0ZVNlc3Npb25SZXF1ZXN0GiYucnVubWUucnVubmVyLnYyLlVwZGF0ZVNlc3Npb25SZXNwb25zZSIAEmAKDURlbGV0ZVNlc3Npb24SJS5ydW5tZS5ydW5uZXIudjIuRGVsZXRlU2Vzc2lvblJlcXVlc3QaJi5ydW5tZS5ydW5uZXIudjIuRGVsZXRlU2Vzc2lvblJlc3BvbnNlIgASaAoPTW9uaXRvckVudlN0b3JlEicucnVubWUucnVubmVyLnYyLk1vbml0b3JFbnZTdG9yZVJlcXVlc3QaKC5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVzcG9uc2UiADABElIKB0V4ZWN1dGUSHy5ydW5tZS5ydW5uZXIudjIuRXhlY3V0ZVJlcXVlc3QaIC5ydW5tZS5ydW5uZXIudjIuRXhlY3V0ZVJlc3BvbnNlIgAoATABEmMKDlJlc29sdmVQcm9ncmFtEiYucnVubWUucnVubmVyLnYyLlJlc29sdmVQcm9ncmFtUmVxdWVzdBonLnJ1bm1lLnJ1bm5lci52Mi5SZXNvbHZlUHJvZ3JhbVJlc3BvbnNlIgBCSFpGZ2l0aHViLmNvbS9ydW5tZWRldi9ydW5tZS92My9hcGkvZ2VuL3Byb3RvL2dvL3J1bm1lL3J1bm5lci92MjtydW5uZXJ2MmIGcHJvdG8z", [file_google_protobuf_wrappers, file_runme_runner_v2_config]); + fileDesc("ChxydW5tZS9ydW5uZXIvdjIvcnVubmVyLnByb3RvEg9ydW5tZS5ydW5uZXIudjIiLwoHUHJvamVjdBIMCgRyb290GAEgASgJEhYKDmVudl9sb2FkX29yZGVyGAIgAygJIo0BCgdTZXNzaW9uEgoKAmlkGAEgASgJEgsKA2VudhgCIAMoCRI4CghtZXRhZGF0YRgDIAMoCzImLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIrIFChRDcmVhdGVTZXNzaW9uUmVxdWVzdBJFCghtZXRhZGF0YRgBIAMoCzIzLnJ1bm1lLnJ1bm5lci52Mi5DcmVhdGVTZXNzaW9uUmVxdWVzdC5NZXRhZGF0YUVudHJ5EgsKA2VudhgCIAMoCRIuCgdwcm9qZWN0GAMgASgLMhgucnVubWUucnVubmVyLnYyLlByb2plY3RIAIgBARJBCg5lbnZfc3RvcmVfdHlwZRgEIAEoDjIkLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uRW52U3RvcmVUeXBlSAGIAQESPAoGY29uZmlnGAUgASgLMiwucnVubWUucnVubmVyLnYyLkNyZWF0ZVNlc3Npb25SZXF1ZXN0LkNvbmZpZxovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaxAIKBkNvbmZpZxJBCg5lbnZfc3RvcmVfdHlwZRgBIAEoDjIkLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uRW52U3RvcmVUeXBlSACIAQESYwoRZW52X3N0b3JlX3NlZWRpbmcYAiABKA4yQy5ydW5tZS5ydW5uZXIudjIuQ3JlYXRlU2Vzc2lvblJlcXVlc3QuQ29uZmlnLlNlc3Npb25FbnZTdG9yZVNlZWRpbmdIAYgBASJpChZTZXNzaW9uRW52U3RvcmVTZWVkaW5nEikKJVNFU1NJT05fRU5WX1NUT1JFX1NFRURJTkdfVU5TUEVDSUZJRUQQABIkCiBTRVNTSU9OX0VOVl9TVE9SRV9TRUVESU5HX1NZU1RFTRABQhEKD19lbnZfc3RvcmVfdHlwZUIUChJfZW52X3N0b3JlX3NlZWRpbmdCCgoIX3Byb2plY3RCEQoPX2Vudl9zdG9yZV90eXBlIkIKFUNyZWF0ZVNlc3Npb25SZXNwb25zZRIpCgdzZXNzaW9uGAEgASgLMhgucnVubWUucnVubmVyLnYyLlNlc3Npb24iHwoRR2V0U2Vzc2lvblJlcXVlc3QSCgoCaWQYASABKAkiPwoSR2V0U2Vzc2lvblJlc3BvbnNlEikKB3Nlc3Npb24YASABKAsyGC5ydW5tZS5ydW5uZXIudjIuU2Vzc2lvbiIVChNMaXN0U2Vzc2lvbnNSZXF1ZXN0IkIKFExpc3RTZXNzaW9uc1Jlc3BvbnNlEioKCHNlc3Npb25zGAEgAygLMhgucnVubWUucnVubmVyLnYyLlNlc3Npb24i4wEKFFVwZGF0ZVNlc3Npb25SZXF1ZXN0EgoKAmlkGAEgASgJEkUKCG1ldGFkYXRhGAIgAygLMjMucnVubWUucnVubmVyLnYyLlVwZGF0ZVNlc3Npb25SZXF1ZXN0Lk1ldGFkYXRhRW50cnkSCwoDZW52GAMgAygJEi4KB3Byb2plY3QYBCABKAsyGC5ydW5tZS5ydW5uZXIudjIuUHJvamVjdEgAiAEBGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIKCghfcHJvamVjdCJCChVVcGRhdGVTZXNzaW9uUmVzcG9uc2USKQoHc2Vzc2lvbhgBIAEoCzIYLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uIiIKFERlbGV0ZVNlc3Npb25SZXF1ZXN0EgoKAmlkGAEgASgJIhcKFURlbGV0ZVNlc3Npb25SZXNwb25zZSI7CgdXaW5zaXplEgwKBHJvd3MYASABKA0SDAoEY29scxgCIAEoDRIJCgF4GAMgASgNEgkKAXkYBCABKA0i5QIKDkV4ZWN1dGVSZXF1ZXN0Ei4KBmNvbmZpZxgBIAEoCzIeLnJ1bm1lLnJ1bm5lci52Mi5Qcm9ncmFtQ29uZmlnEhIKCmlucHV0X2RhdGEYCCABKAwSKgoEc3RvcBgJIAEoDjIcLnJ1bm1lLnJ1bm5lci52Mi5FeGVjdXRlU3RvcBIuCgd3aW5zaXplGAogASgLMhgucnVubWUucnVubmVyLnYyLldpbnNpemVIAIgBARISCgpzZXNzaW9uX2lkGBQgASgJEjoKEHNlc3Npb25fc3RyYXRlZ3kYFSABKA4yIC5ydW5tZS5ydW5uZXIudjIuU2Vzc2lvblN0cmF0ZWd5Ei4KB3Byb2plY3QYFiABKAsyGC5ydW5tZS5ydW5uZXIudjIuUHJvamVjdEgBiAEBEhsKE3N0b3JlX3N0ZG91dF9pbl9lbnYYFyABKAhCCgoIX3dpbnNpemVCCgoIX3Byb2plY3QihwIKD0V4ZWN1dGVSZXNwb25zZRIvCglleGl0X2NvZGUYASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSEwoLc3Rkb3V0X2RhdGEYAiABKAwSEwoLc3RkZXJyX2RhdGEYAyABKAwSKQoDcGlkGAQgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlEhEKCW1pbWVfdHlwZRgFIAEoCRIxCgNwd2QYByABKAsyJC5ydW5tZS5ydW5uZXIudjIuRXhlY3V0ZVJlc3BvbnNlLlB3ZBooCgNQd2QSDwoHY3VycmVudBgBIAEoCRIQCghwcmV2aW91cxgCIAEoCSIqChlSZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0Eg0KBWxpbmVzGAEgAygJIsAEChVSZXNvbHZlUHJvZ3JhbVJlcXVlc3QSPgoIY29tbWFuZHMYASABKAsyKi5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1Db21tYW5kTGlzdEgAEhAKBnNjcmlwdBgCIAEoCUgAEjkKBG1vZGUYAyABKA4yKy5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXF1ZXN0Lk1vZGUSCwoDZW52GAQgAygJEhIKCnNlc3Npb25faWQYBSABKAkSOgoQc2Vzc2lvbl9zdHJhdGVneRgGIAEoDjIgLnJ1bm1lLnJ1bm5lci52Mi5TZXNzaW9uU3RyYXRlZ3kSLgoHcHJvamVjdBgHIAEoCzIYLnJ1bm1lLnJ1bm5lci52Mi5Qcm9qZWN0SAGIAQESEwoLbGFuZ3VhZ2VfaWQYCCABKAkSQwoJcmV0ZW50aW9uGAkgASgOMjAucnVubWUucnVubmVyLnYyLlJlc29sdmVQcm9ncmFtUmVxdWVzdC5SZXRlbnRpb24iRAoETW9kZRIUChBNT0RFX1VOU1BFQ0lGSUVEEAASEwoPTU9ERV9QUk9NUFRfQUxMEAESEQoNTU9ERV9TS0lQX0FMTBACIlcKCVJldGVudGlvbhIZChVSRVRFTlRJT05fVU5TUEVDSUZJRUQQABIXChNSRVRFTlRJT05fRklSU1RfUlVOEAESFgoSUkVURU5USU9OX0xBU1RfUlVOEAJCCAoGc291cmNlQgoKCF9wcm9qZWN0ItoDChZSZXNvbHZlUHJvZ3JhbVJlc3BvbnNlEg4KBnNjcmlwdBgBIAEoCRI8Cghjb21tYW5kcxgCIAEoCzIqLnJ1bm1lLnJ1bm5lci52Mi5SZXNvbHZlUHJvZ3JhbUNvbW1hbmRMaXN0Ej8KBHZhcnMYAyADKAsyMS5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXNwb25zZS5WYXJSZXN1bHQaiQEKCVZhclJlc3VsdBI+CgZzdGF0dXMYASABKA4yLi5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXNwb25zZS5TdGF0dXMSDAoEbmFtZRgCIAEoCRIWCg5vcmlnaW5hbF92YWx1ZRgDIAEoCRIWCg5yZXNvbHZlZF92YWx1ZRgEIAEoCSKkAQoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhMKD1NUQVRVU19SRVNPTFZFRBABEiIKHlNUQVRVU19VTlJFU09MVkVEX1dJVEhfTUVTU0FHRRACEiYKIlNUQVRVU19VTlJFU09MVkVEX1dJVEhfUExBQ0VIT0xERVIQAxIhCh1TVEFUVVNfVU5SRVNPTFZFRF9XSVRIX1NFQ1JFVBAEIsgBChZNb25pdG9yRW52U3RvcmVSZXF1ZXN0EikKB3Nlc3Npb24YASABKAsyGC5ydW5tZS5ydW5uZXIudjIuU2Vzc2lvbhJPCg9zbmFwc2hvdF9wb2xpY3kYAiABKAsyNi5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVxdWVzdC5TbmFwc2hvdFBvbGljeRoyCg5TbmFwc2hvdFBvbGljeRIOCgZyZXZlYWwYASABKAgSEAoIaW5zZWN1cmUYAiABKAgiwgQKH01vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3QSSgoEZW52cxgBIAMoCzI8LnJ1bm1lLnJ1bm5lci52Mi5Nb25pdG9yRW52U3RvcmVSZXNwb25zZVNuYXBzaG90LlNuYXBzaG90RW52Gs4CCgtTbmFwc2hvdEVudhJHCgZzdGF0dXMYASABKA4yNy5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdC5TdGF0dXMSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIMCgRzcGVjGAQgASgJEhMKC2lzX3JlcXVpcmVkGAUgASgIEg4KBm9yaWdpbhgGIAEoCRIWCg5vcmlnaW5hbF92YWx1ZRgHIAEoCRIWCg5yZXNvbHZlZF92YWx1ZRgIIAEoCRITCgtjcmVhdGVfdGltZRgJIAEoCRITCgt1cGRhdGVfdGltZRgKIAEoCRJGCgZlcnJvcnMYCyADKAsyNi5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVzcG9uc2VTbmFwc2hvdC5FcnJvchomCgVFcnJvchIMCgRjb2RlGAEgASgNEg8KB21lc3NhZ2UYAiABKAkiWgoGU3RhdHVzEhYKElNUQVRVU19VTlNQRUNJRklFRBAAEhIKDlNUQVRVU19MSVRFUkFMEAESEQoNU1RBVFVTX0hJRERFThACEhEKDVNUQVRVU19NQVNLRUQQAyKbAQoXTW9uaXRvckVudlN0b3JlUmVzcG9uc2USMgoEdHlwZRgBIAEoDjIkLnJ1bm1lLnJ1bm5lci52Mi5Nb25pdG9yRW52U3RvcmVUeXBlEkQKCHNuYXBzaG90GAIgASgLMjAucnVubWUucnVubmVyLnYyLk1vbml0b3JFbnZTdG9yZVJlc3BvbnNlU25hcHNob3RIAEIGCgRkYXRhKl0KE1Nlc3Npb25FbnZTdG9yZVR5cGUSJgoiU0VTU0lPTl9FTlZfU1RPUkVfVFlQRV9VTlNQRUNJRklFRBAAEh4KGlNFU1NJT05fRU5WX1NUT1JFX1RZUEVfT1dMEAEqXgoLRXhlY3V0ZVN0b3ASHAoYRVhFQ1VURV9TVE9QX1VOU1BFQ0lGSUVEEAASGgoWRVhFQ1VURV9TVE9QX0lOVEVSUlVQVBABEhUKEUVYRUNVVEVfU1RPUF9LSUxMEAIqVQoPU2Vzc2lvblN0cmF0ZWd5EiAKHFNFU1NJT05fU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIgChxTRVNTSU9OX1NUUkFURUdZX01PU1RfUkVDRU5UEAEqYgoTTW9uaXRvckVudlN0b3JlVHlwZRImCiJNT05JVE9SX0VOVl9TVE9SRV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTU9OSVRPUl9FTlZfU1RPUkVfVFlQRV9TTkFQU0hPVBABMpAGCg1SdW5uZXJTZXJ2aWNlEmAKDUNyZWF0ZVNlc3Npb24SJS5ydW5tZS5ydW5uZXIudjIuQ3JlYXRlU2Vzc2lvblJlcXVlc3QaJi5ydW5tZS5ydW5uZXIudjIuQ3JlYXRlU2Vzc2lvblJlc3BvbnNlIgASVwoKR2V0U2Vzc2lvbhIiLnJ1bm1lLnJ1bm5lci52Mi5HZXRTZXNzaW9uUmVxdWVzdBojLnJ1bm1lLnJ1bm5lci52Mi5HZXRTZXNzaW9uUmVzcG9uc2UiABJdCgxMaXN0U2Vzc2lvbnMSJC5ydW5tZS5ydW5uZXIudjIuTGlzdFNlc3Npb25zUmVxdWVzdBolLnJ1bm1lLnJ1bm5lci52Mi5MaXN0U2Vzc2lvbnNSZXNwb25zZSIAEmAKDVVwZGF0ZVNlc3Npb24SJS5ydW5tZS5ydW5uZXIudjIuVXBkYXRlU2Vzc2lvblJlcXVlc3QaJi5ydW5tZS5ydW5uZXIudjIuVXBkYXRlU2Vzc2lvblJlc3BvbnNlIgASYAoNRGVsZXRlU2Vzc2lvbhIlLnJ1bm1lLnJ1bm5lci52Mi5EZWxldGVTZXNzaW9uUmVxdWVzdBomLnJ1bm1lLnJ1bm5lci52Mi5EZWxldGVTZXNzaW9uUmVzcG9uc2UiABJoCg9Nb25pdG9yRW52U3RvcmUSJy5ydW5tZS5ydW5uZXIudjIuTW9uaXRvckVudlN0b3JlUmVxdWVzdBooLnJ1bm1lLnJ1bm5lci52Mi5Nb25pdG9yRW52U3RvcmVSZXNwb25zZSIAMAESUgoHRXhlY3V0ZRIfLnJ1bm1lLnJ1bm5lci52Mi5FeGVjdXRlUmVxdWVzdBogLnJ1bm1lLnJ1bm5lci52Mi5FeGVjdXRlUmVzcG9uc2UiACgBMAESYwoOUmVzb2x2ZVByb2dyYW0SJi5ydW5tZS5ydW5uZXIudjIuUmVzb2x2ZVByb2dyYW1SZXF1ZXN0GicucnVubWUucnVubmVyLnYyLlJlc29sdmVQcm9ncmFtUmVzcG9uc2UiAEJIWkZnaXRodWIuY29tL3J1bm1lZGV2L3J1bm1lL3YzL2FwaS9nZW4vcHJvdG8vZ28vcnVubWUvcnVubmVyL3YyO3J1bm5lcnYyYgZwcm90bzM", [file_google_protobuf_wrappers, file_runme_runner_v2_config]); /** * Describes the message runme.runner.v2.Project. @@ -214,6 +214,13 @@ export const ResolveProgramResponse_Status = /*@__PURE__*/ export const MonitorEnvStoreRequestSchema = /*@__PURE__*/ messageDesc(file_runme_runner_v2_runner, 18); +/** + * Describes the message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy. + * Use `create(MonitorEnvStoreRequest_SnapshotPolicySchema)` to create a new message. + */ +export const MonitorEnvStoreRequest_SnapshotPolicySchema = /*@__PURE__*/ + messageDesc(file_runme_runner_v2_runner, 18, 0); + /** * Describes the message runme.runner.v2.MonitorEnvStoreResponseSnapshot. * Use `create(MonitorEnvStoreResponseSnapshotSchema)` to create a new message. diff --git a/api/gen/proto/go/runme/runner/v1/runner.pb.go b/api/gen/proto/go/runme/runner/v1/runner.pb.go index ce49cd003..4a010949f 100644 --- a/api/gen/proto/go/runme/runner/v1/runner.pb.go +++ b/api/gen/proto/go/runme/runner/v1/runner.pb.go @@ -1755,10 +1755,11 @@ func (x *ResolveProgramResponse) GetVars() []*ResolveProgramResponse_VarResult { } type MonitorEnvStoreRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` + SnapshotPolicy *MonitorEnvStoreRequest_SnapshotPolicy `protobuf:"bytes,2,opt,name=snapshot_policy,json=snapshotPolicy,proto3" json:"snapshot_policy,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MonitorEnvStoreRequest) Reset() { @@ -1798,6 +1799,13 @@ func (x *MonitorEnvStoreRequest) GetSession() *Session { return nil } +func (x *MonitorEnvStoreRequest) GetSnapshotPolicy() *MonitorEnvStoreRequest_SnapshotPolicy { + if x != nil { + return x.SnapshotPolicy + } + return nil +} + type MonitorEnvStoreResponseSnapshot struct { state protoimpl.MessageState `protogen:"open.v1"` Envs []*MonitorEnvStoreResponseSnapshot_SnapshotEnv `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty"` @@ -1992,6 +2000,58 @@ func (x *ResolveProgramResponse_VarResult) GetResolvedValue() string { return "" } +type MonitorEnvStoreRequest_SnapshotPolicy struct { + state protoimpl.MessageState `protogen:"open.v1"` + Reveal bool `protobuf:"varint,1,opt,name=reveal,proto3" json:"reveal,omitempty"` + Insecure bool `protobuf:"varint,2,opt,name=insecure,proto3" json:"insecure,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) Reset() { + *x = MonitorEnvStoreRequest_SnapshotPolicy{} + mi := &file_runme_runner_v1_runner_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MonitorEnvStoreRequest_SnapshotPolicy) ProtoMessage() {} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) ProtoReflect() protoreflect.Message { + mi := &file_runme_runner_v1_runner_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MonitorEnvStoreRequest_SnapshotPolicy.ProtoReflect.Descriptor instead. +func (*MonitorEnvStoreRequest_SnapshotPolicy) Descriptor() ([]byte, []int) { + return file_runme_runner_v1_runner_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) GetReveal() bool { + if x != nil { + return x.Reveal + } + return false +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) GetInsecure() bool { + if x != nil { + return x.Insecure + } + return false +} + type MonitorEnvStoreResponseSnapshot_SnapshotEnv struct { state protoimpl.MessageState `protogen:"open.v1"` Status MonitorEnvStoreResponseSnapshot_Status `protobuf:"varint,1,opt,name=status,proto3,enum=runme.runner.v1.MonitorEnvStoreResponseSnapshot_Status" json:"status,omitempty"` @@ -2011,7 +2071,7 @@ type MonitorEnvStoreResponseSnapshot_SnapshotEnv struct { func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) Reset() { *x = MonitorEnvStoreResponseSnapshot_SnapshotEnv{} - mi := &file_runme_runner_v1_runner_proto_msgTypes[23] + mi := &file_runme_runner_v1_runner_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2023,7 +2083,7 @@ func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) String() string { func (*MonitorEnvStoreResponseSnapshot_SnapshotEnv) ProtoMessage() {} func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) ProtoReflect() protoreflect.Message { - mi := &file_runme_runner_v1_runner_proto_msgTypes[23] + mi := &file_runme_runner_v1_runner_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2126,7 +2186,7 @@ type MonitorEnvStoreResponseSnapshot_Error struct { func (x *MonitorEnvStoreResponseSnapshot_Error) Reset() { *x = MonitorEnvStoreResponseSnapshot_Error{} - mi := &file_runme_runner_v1_runner_proto_msgTypes[24] + mi := &file_runme_runner_v1_runner_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2138,7 +2198,7 @@ func (x *MonitorEnvStoreResponseSnapshot_Error) String() string { func (*MonitorEnvStoreResponseSnapshot_Error) ProtoMessage() {} func (x *MonitorEnvStoreResponseSnapshot_Error) ProtoReflect() protoreflect.Message { - mi := &file_runme_runner_v1_runner_proto_msgTypes[24] + mi := &file_runme_runner_v1_runner_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2300,9 +2360,13 @@ const file_runme_runner_v1_runner_proto_rawDesc = "" + "\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x01\x12&\n" + "\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x02\x12\x13\n" + "\x0fSTATUS_RESOLVED\x10\x03\x12!\n" + - "\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"L\n" + + "\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"\xf3\x01\n" + "\x16MonitorEnvStoreRequest\x122\n" + - "\asession\x18\x01 \x01(\v2\x18.runme.runner.v1.SessionR\asession\"\xca\x05\n" + + "\asession\x18\x01 \x01(\v2\x18.runme.runner.v1.SessionR\asession\x12_\n" + + "\x0fsnapshot_policy\x18\x02 \x01(\v26.runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicyR\x0esnapshotPolicy\x1aD\n" + + "\x0eSnapshotPolicy\x12\x16\n" + + "\x06reveal\x18\x01 \x01(\bR\x06reveal\x12\x1a\n" + + "\binsecure\x18\x02 \x01(\bR\binsecure\"\xca\x05\n" + "\x1fMonitorEnvStoreResponseSnapshot\x12P\n" + "\x04envs\x18\x01 \x03(\v2<.runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04envs\x1a\xc1\x03\n" + "\vSnapshotEnv\x12O\n" + @@ -2376,7 +2440,7 @@ func file_runme_runner_v1_runner_proto_rawDescGZIP() []byte { var ( file_runme_runner_v1_runner_proto_enumTypes = make([]protoimpl.EnumInfo, 10) - file_runme_runner_v1_runner_proto_msgTypes = make([]protoimpl.MessageInfo, 25) + file_runme_runner_v1_runner_proto_msgTypes = make([]protoimpl.MessageInfo, 26) file_runme_runner_v1_runner_proto_goTypes = []any{ (SessionEnvStoreType)(0), // 0: runme.runner.v1.SessionEnvStoreType (ExecuteStop)(0), // 1: runme.runner.v1.ExecuteStop @@ -2411,9 +2475,10 @@ var ( nil, // 30: runme.runner.v1.Session.MetadataEntry nil, // 31: runme.runner.v1.CreateSessionRequest.MetadataEntry (*ResolveProgramResponse_VarResult)(nil), // 32: runme.runner.v1.ResolveProgramResponse.VarResult - (*MonitorEnvStoreResponseSnapshot_SnapshotEnv)(nil), // 33: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv - (*MonitorEnvStoreResponseSnapshot_Error)(nil), // 34: runme.runner.v1.MonitorEnvStoreResponseSnapshot.Error - (*wrapperspb.UInt32Value)(nil), // 35: google.protobuf.UInt32Value + (*MonitorEnvStoreRequest_SnapshotPolicy)(nil), // 33: runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + (*MonitorEnvStoreResponseSnapshot_SnapshotEnv)(nil), // 34: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv + (*MonitorEnvStoreResponseSnapshot_Error)(nil), // 35: runme.runner.v1.MonitorEnvStoreResponseSnapshot.Error + (*wrapperspb.UInt32Value)(nil), // 36: google.protobuf.UInt32Value } ) @@ -2431,7 +2496,7 @@ var file_runme_runner_v1_runner_proto_depIdxs = []int32{ 3, // 10: runme.runner.v1.ExecuteRequest.session_strategy:type_name -> runme.runner.v1.SessionStrategy 19, // 11: runme.runner.v1.ExecuteRequest.project:type_name -> runme.runner.v1.Project 2, // 12: runme.runner.v1.ExecuteRequest.command_mode:type_name -> runme.runner.v1.CommandMode - 35, // 13: runme.runner.v1.ExecuteResponse.exit_code:type_name -> google.protobuf.UInt32Value + 36, // 13: runme.runner.v1.ExecuteResponse.exit_code:type_name -> google.protobuf.UInt32Value 22, // 14: runme.runner.v1.ExecuteResponse.pid:type_name -> runme.runner.v1.ProcessPID 24, // 15: runme.runner.v1.ResolveProgramRequest.commands:type_name -> runme.runner.v1.ResolveProgramCommandList 6, // 16: runme.runner.v1.ResolveProgramRequest.mode:type_name -> runme.runner.v1.ResolveProgramRequest.Mode @@ -2441,31 +2506,32 @@ var file_runme_runner_v1_runner_proto_depIdxs = []int32{ 24, // 20: runme.runner.v1.ResolveProgramResponse.commands:type_name -> runme.runner.v1.ResolveProgramCommandList 32, // 21: runme.runner.v1.ResolveProgramResponse.vars:type_name -> runme.runner.v1.ResolveProgramResponse.VarResult 10, // 22: runme.runner.v1.MonitorEnvStoreRequest.session:type_name -> runme.runner.v1.Session - 33, // 23: runme.runner.v1.MonitorEnvStoreResponseSnapshot.envs:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv - 4, // 24: runme.runner.v1.MonitorEnvStoreResponse.type:type_name -> runme.runner.v1.MonitorEnvStoreType - 28, // 25: runme.runner.v1.MonitorEnvStoreResponse.snapshot:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot - 8, // 26: runme.runner.v1.ResolveProgramResponse.VarResult.status:type_name -> runme.runner.v1.ResolveProgramResponse.Status - 9, // 27: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv.status:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.Status - 34, // 28: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv.errors:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.Error - 11, // 29: runme.runner.v1.RunnerService.CreateSession:input_type -> runme.runner.v1.CreateSessionRequest - 13, // 30: runme.runner.v1.RunnerService.GetSession:input_type -> runme.runner.v1.GetSessionRequest - 15, // 31: runme.runner.v1.RunnerService.ListSessions:input_type -> runme.runner.v1.ListSessionsRequest - 17, // 32: runme.runner.v1.RunnerService.DeleteSession:input_type -> runme.runner.v1.DeleteSessionRequest - 27, // 33: runme.runner.v1.RunnerService.MonitorEnvStore:input_type -> runme.runner.v1.MonitorEnvStoreRequest - 21, // 34: runme.runner.v1.RunnerService.Execute:input_type -> runme.runner.v1.ExecuteRequest - 25, // 35: runme.runner.v1.RunnerService.ResolveProgram:input_type -> runme.runner.v1.ResolveProgramRequest - 12, // 36: runme.runner.v1.RunnerService.CreateSession:output_type -> runme.runner.v1.CreateSessionResponse - 14, // 37: runme.runner.v1.RunnerService.GetSession:output_type -> runme.runner.v1.GetSessionResponse - 16, // 38: runme.runner.v1.RunnerService.ListSessions:output_type -> runme.runner.v1.ListSessionsResponse - 18, // 39: runme.runner.v1.RunnerService.DeleteSession:output_type -> runme.runner.v1.DeleteSessionResponse - 29, // 40: runme.runner.v1.RunnerService.MonitorEnvStore:output_type -> runme.runner.v1.MonitorEnvStoreResponse - 23, // 41: runme.runner.v1.RunnerService.Execute:output_type -> runme.runner.v1.ExecuteResponse - 26, // 42: runme.runner.v1.RunnerService.ResolveProgram:output_type -> runme.runner.v1.ResolveProgramResponse - 36, // [36:43] is the sub-list for method output_type - 29, // [29:36] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 33, // 23: runme.runner.v1.MonitorEnvStoreRequest.snapshot_policy:type_name -> runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + 34, // 24: runme.runner.v1.MonitorEnvStoreResponseSnapshot.envs:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv + 4, // 25: runme.runner.v1.MonitorEnvStoreResponse.type:type_name -> runme.runner.v1.MonitorEnvStoreType + 28, // 26: runme.runner.v1.MonitorEnvStoreResponse.snapshot:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot + 8, // 27: runme.runner.v1.ResolveProgramResponse.VarResult.status:type_name -> runme.runner.v1.ResolveProgramResponse.Status + 9, // 28: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv.status:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.Status + 35, // 29: runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnv.errors:type_name -> runme.runner.v1.MonitorEnvStoreResponseSnapshot.Error + 11, // 30: runme.runner.v1.RunnerService.CreateSession:input_type -> runme.runner.v1.CreateSessionRequest + 13, // 31: runme.runner.v1.RunnerService.GetSession:input_type -> runme.runner.v1.GetSessionRequest + 15, // 32: runme.runner.v1.RunnerService.ListSessions:input_type -> runme.runner.v1.ListSessionsRequest + 17, // 33: runme.runner.v1.RunnerService.DeleteSession:input_type -> runme.runner.v1.DeleteSessionRequest + 27, // 34: runme.runner.v1.RunnerService.MonitorEnvStore:input_type -> runme.runner.v1.MonitorEnvStoreRequest + 21, // 35: runme.runner.v1.RunnerService.Execute:input_type -> runme.runner.v1.ExecuteRequest + 25, // 36: runme.runner.v1.RunnerService.ResolveProgram:input_type -> runme.runner.v1.ResolveProgramRequest + 12, // 37: runme.runner.v1.RunnerService.CreateSession:output_type -> runme.runner.v1.CreateSessionResponse + 14, // 38: runme.runner.v1.RunnerService.GetSession:output_type -> runme.runner.v1.GetSessionResponse + 16, // 39: runme.runner.v1.RunnerService.ListSessions:output_type -> runme.runner.v1.ListSessionsResponse + 18, // 40: runme.runner.v1.RunnerService.DeleteSession:output_type -> runme.runner.v1.DeleteSessionResponse + 29, // 41: runme.runner.v1.RunnerService.MonitorEnvStore:output_type -> runme.runner.v1.MonitorEnvStoreResponse + 23, // 42: runme.runner.v1.RunnerService.Execute:output_type -> runme.runner.v1.ExecuteResponse + 26, // 43: runme.runner.v1.RunnerService.ResolveProgram:output_type -> runme.runner.v1.ResolveProgramResponse + 37, // [37:44] is the sub-list for method output_type + 30, // [30:37] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name } func init() { file_runme_runner_v1_runner_proto_init() } @@ -2488,7 +2554,7 @@ func file_runme_runner_v1_runner_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_runme_runner_v1_runner_proto_rawDesc), len(file_runme_runner_v1_runner_proto_rawDesc)), NumEnums: 10, - NumMessages: 25, + NumMessages: 26, NumExtensions: 0, NumServices: 1, }, diff --git a/api/gen/proto/go/runme/runner/v2/runner.pb.go b/api/gen/proto/go/runme/runner/v2/runner.pb.go index 24fb56f47..935fbe0d4 100644 --- a/api/gen/proto/go/runme/runner/v2/runner.pb.go +++ b/api/gen/proto/go/runme/runner/v2/runner.pb.go @@ -1643,10 +1643,11 @@ func (x *ResolveProgramResponse) GetVars() []*ResolveProgramResponse_VarResult { } type MonitorEnvStoreRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` + SnapshotPolicy *MonitorEnvStoreRequest_SnapshotPolicy `protobuf:"bytes,2,opt,name=snapshot_policy,json=snapshotPolicy,proto3" json:"snapshot_policy,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MonitorEnvStoreRequest) Reset() { @@ -1686,6 +1687,13 @@ func (x *MonitorEnvStoreRequest) GetSession() *Session { return nil } +func (x *MonitorEnvStoreRequest) GetSnapshotPolicy() *MonitorEnvStoreRequest_SnapshotPolicy { + if x != nil { + return x.SnapshotPolicy + } + return nil +} + type MonitorEnvStoreResponseSnapshot struct { state protoimpl.MessageState `protogen:"open.v1"` Envs []*MonitorEnvStoreResponseSnapshot_SnapshotEnv `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty"` @@ -1986,6 +1994,58 @@ func (x *ResolveProgramResponse_VarResult) GetResolvedValue() string { return "" } +type MonitorEnvStoreRequest_SnapshotPolicy struct { + state protoimpl.MessageState `protogen:"open.v1"` + Reveal bool `protobuf:"varint,1,opt,name=reveal,proto3" json:"reveal,omitempty"` + Insecure bool `protobuf:"varint,2,opt,name=insecure,proto3" json:"insecure,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) Reset() { + *x = MonitorEnvStoreRequest_SnapshotPolicy{} + mi := &file_runme_runner_v2_runner_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MonitorEnvStoreRequest_SnapshotPolicy) ProtoMessage() {} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) ProtoReflect() protoreflect.Message { + mi := &file_runme_runner_v2_runner_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MonitorEnvStoreRequest_SnapshotPolicy.ProtoReflect.Descriptor instead. +func (*MonitorEnvStoreRequest_SnapshotPolicy) Descriptor() ([]byte, []int) { + return file_runme_runner_v2_runner_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) GetReveal() bool { + if x != nil { + return x.Reveal + } + return false +} + +func (x *MonitorEnvStoreRequest_SnapshotPolicy) GetInsecure() bool { + if x != nil { + return x.Insecure + } + return false +} + type MonitorEnvStoreResponseSnapshot_SnapshotEnv struct { state protoimpl.MessageState `protogen:"open.v1"` Status MonitorEnvStoreResponseSnapshot_Status `protobuf:"varint,1,opt,name=status,proto3,enum=runme.runner.v2.MonitorEnvStoreResponseSnapshot_Status" json:"status,omitempty"` @@ -2005,7 +2065,7 @@ type MonitorEnvStoreResponseSnapshot_SnapshotEnv struct { func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) Reset() { *x = MonitorEnvStoreResponseSnapshot_SnapshotEnv{} - mi := &file_runme_runner_v2_runner_proto_msgTypes[27] + mi := &file_runme_runner_v2_runner_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2017,7 +2077,7 @@ func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) String() string { func (*MonitorEnvStoreResponseSnapshot_SnapshotEnv) ProtoMessage() {} func (x *MonitorEnvStoreResponseSnapshot_SnapshotEnv) ProtoReflect() protoreflect.Message { - mi := &file_runme_runner_v2_runner_proto_msgTypes[27] + mi := &file_runme_runner_v2_runner_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2120,7 +2180,7 @@ type MonitorEnvStoreResponseSnapshot_Error struct { func (x *MonitorEnvStoreResponseSnapshot_Error) Reset() { *x = MonitorEnvStoreResponseSnapshot_Error{} - mi := &file_runme_runner_v2_runner_proto_msgTypes[28] + mi := &file_runme_runner_v2_runner_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2132,7 +2192,7 @@ func (x *MonitorEnvStoreResponseSnapshot_Error) String() string { func (*MonitorEnvStoreResponseSnapshot_Error) ProtoMessage() {} func (x *MonitorEnvStoreResponseSnapshot_Error) ProtoReflect() protoreflect.Message { - mi := &file_runme_runner_v2_runner_proto_msgTypes[28] + mi := &file_runme_runner_v2_runner_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2293,9 +2353,13 @@ const file_runme_runner_v2_runner_proto_rawDesc = "" + "\x0fSTATUS_RESOLVED\x10\x01\x12\"\n" + "\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x02\x12&\n" + "\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x03\x12!\n" + - "\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"L\n" + + "\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"\xf3\x01\n" + "\x16MonitorEnvStoreRequest\x122\n" + - "\asession\x18\x01 \x01(\v2\x18.runme.runner.v2.SessionR\asession\"\xca\x05\n" + + "\asession\x18\x01 \x01(\v2\x18.runme.runner.v2.SessionR\asession\x12_\n" + + "\x0fsnapshot_policy\x18\x02 \x01(\v26.runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicyR\x0esnapshotPolicy\x1aD\n" + + "\x0eSnapshotPolicy\x12\x16\n" + + "\x06reveal\x18\x01 \x01(\bR\x06reveal\x12\x1a\n" + + "\binsecure\x18\x02 \x01(\bR\binsecure\"\xca\x05\n" + "\x1fMonitorEnvStoreResponseSnapshot\x12P\n" + "\x04envs\x18\x01 \x03(\v2<.runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04envs\x1a\xc1\x03\n" + "\vSnapshotEnv\x12O\n" + @@ -2364,7 +2428,7 @@ func file_runme_runner_v2_runner_proto_rawDescGZIP() []byte { var ( file_runme_runner_v2_runner_proto_enumTypes = make([]protoimpl.EnumInfo, 9) - file_runme_runner_v2_runner_proto_msgTypes = make([]protoimpl.MessageInfo, 29) + file_runme_runner_v2_runner_proto_msgTypes = make([]protoimpl.MessageInfo, 30) file_runme_runner_v2_runner_proto_goTypes = []any{ (SessionEnvStoreType)(0), // 0: runme.runner.v2.SessionEnvStoreType (ExecuteStop)(0), // 1: runme.runner.v2.ExecuteStop @@ -2402,10 +2466,11 @@ var ( nil, // 33: runme.runner.v2.UpdateSessionRequest.MetadataEntry (*ExecuteResponse_Pwd)(nil), // 34: runme.runner.v2.ExecuteResponse.Pwd (*ResolveProgramResponse_VarResult)(nil), // 35: runme.runner.v2.ResolveProgramResponse.VarResult - (*MonitorEnvStoreResponseSnapshot_SnapshotEnv)(nil), // 36: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv - (*MonitorEnvStoreResponseSnapshot_Error)(nil), // 37: runme.runner.v2.MonitorEnvStoreResponseSnapshot.Error - (*ProgramConfig)(nil), // 38: runme.runner.v2.ProgramConfig - (*wrapperspb.UInt32Value)(nil), // 39: google.protobuf.UInt32Value + (*MonitorEnvStoreRequest_SnapshotPolicy)(nil), // 36: runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + (*MonitorEnvStoreResponseSnapshot_SnapshotEnv)(nil), // 37: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv + (*MonitorEnvStoreResponseSnapshot_Error)(nil), // 38: runme.runner.v2.MonitorEnvStoreResponseSnapshot.Error + (*ProgramConfig)(nil), // 39: runme.runner.v2.ProgramConfig + (*wrapperspb.UInt32Value)(nil), // 40: google.protobuf.UInt32Value } ) @@ -2421,13 +2486,13 @@ var file_runme_runner_v2_runner_proto_depIdxs = []int32{ 33, // 8: runme.runner.v2.UpdateSessionRequest.metadata:type_name -> runme.runner.v2.UpdateSessionRequest.MetadataEntry 9, // 9: runme.runner.v2.UpdateSessionRequest.project:type_name -> runme.runner.v2.Project 10, // 10: runme.runner.v2.UpdateSessionResponse.session:type_name -> runme.runner.v2.Session - 38, // 11: runme.runner.v2.ExecuteRequest.config:type_name -> runme.runner.v2.ProgramConfig + 39, // 11: runme.runner.v2.ExecuteRequest.config:type_name -> runme.runner.v2.ProgramConfig 1, // 12: runme.runner.v2.ExecuteRequest.stop:type_name -> runme.runner.v2.ExecuteStop 21, // 13: runme.runner.v2.ExecuteRequest.winsize:type_name -> runme.runner.v2.Winsize 2, // 14: runme.runner.v2.ExecuteRequest.session_strategy:type_name -> runme.runner.v2.SessionStrategy 9, // 15: runme.runner.v2.ExecuteRequest.project:type_name -> runme.runner.v2.Project - 39, // 16: runme.runner.v2.ExecuteResponse.exit_code:type_name -> google.protobuf.UInt32Value - 39, // 17: runme.runner.v2.ExecuteResponse.pid:type_name -> google.protobuf.UInt32Value + 40, // 16: runme.runner.v2.ExecuteResponse.exit_code:type_name -> google.protobuf.UInt32Value + 40, // 17: runme.runner.v2.ExecuteResponse.pid:type_name -> google.protobuf.UInt32Value 34, // 18: runme.runner.v2.ExecuteResponse.pwd:type_name -> runme.runner.v2.ExecuteResponse.Pwd 24, // 19: runme.runner.v2.ResolveProgramRequest.commands:type_name -> runme.runner.v2.ResolveProgramCommandList 5, // 20: runme.runner.v2.ResolveProgramRequest.mode:type_name -> runme.runner.v2.ResolveProgramRequest.Mode @@ -2437,35 +2502,36 @@ var file_runme_runner_v2_runner_proto_depIdxs = []int32{ 24, // 24: runme.runner.v2.ResolveProgramResponse.commands:type_name -> runme.runner.v2.ResolveProgramCommandList 35, // 25: runme.runner.v2.ResolveProgramResponse.vars:type_name -> runme.runner.v2.ResolveProgramResponse.VarResult 10, // 26: runme.runner.v2.MonitorEnvStoreRequest.session:type_name -> runme.runner.v2.Session - 36, // 27: runme.runner.v2.MonitorEnvStoreResponseSnapshot.envs:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv - 3, // 28: runme.runner.v2.MonitorEnvStoreResponse.type:type_name -> runme.runner.v2.MonitorEnvStoreType - 28, // 29: runme.runner.v2.MonitorEnvStoreResponse.snapshot:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot - 0, // 30: runme.runner.v2.CreateSessionRequest.Config.env_store_type:type_name -> runme.runner.v2.SessionEnvStoreType - 4, // 31: runme.runner.v2.CreateSessionRequest.Config.env_store_seeding:type_name -> runme.runner.v2.CreateSessionRequest.Config.SessionEnvStoreSeeding - 7, // 32: runme.runner.v2.ResolveProgramResponse.VarResult.status:type_name -> runme.runner.v2.ResolveProgramResponse.Status - 8, // 33: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv.status:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.Status - 37, // 34: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv.errors:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.Error - 11, // 35: runme.runner.v2.RunnerService.CreateSession:input_type -> runme.runner.v2.CreateSessionRequest - 13, // 36: runme.runner.v2.RunnerService.GetSession:input_type -> runme.runner.v2.GetSessionRequest - 15, // 37: runme.runner.v2.RunnerService.ListSessions:input_type -> runme.runner.v2.ListSessionsRequest - 17, // 38: runme.runner.v2.RunnerService.UpdateSession:input_type -> runme.runner.v2.UpdateSessionRequest - 19, // 39: runme.runner.v2.RunnerService.DeleteSession:input_type -> runme.runner.v2.DeleteSessionRequest - 27, // 40: runme.runner.v2.RunnerService.MonitorEnvStore:input_type -> runme.runner.v2.MonitorEnvStoreRequest - 22, // 41: runme.runner.v2.RunnerService.Execute:input_type -> runme.runner.v2.ExecuteRequest - 25, // 42: runme.runner.v2.RunnerService.ResolveProgram:input_type -> runme.runner.v2.ResolveProgramRequest - 12, // 43: runme.runner.v2.RunnerService.CreateSession:output_type -> runme.runner.v2.CreateSessionResponse - 14, // 44: runme.runner.v2.RunnerService.GetSession:output_type -> runme.runner.v2.GetSessionResponse - 16, // 45: runme.runner.v2.RunnerService.ListSessions:output_type -> runme.runner.v2.ListSessionsResponse - 18, // 46: runme.runner.v2.RunnerService.UpdateSession:output_type -> runme.runner.v2.UpdateSessionResponse - 20, // 47: runme.runner.v2.RunnerService.DeleteSession:output_type -> runme.runner.v2.DeleteSessionResponse - 29, // 48: runme.runner.v2.RunnerService.MonitorEnvStore:output_type -> runme.runner.v2.MonitorEnvStoreResponse - 23, // 49: runme.runner.v2.RunnerService.Execute:output_type -> runme.runner.v2.ExecuteResponse - 26, // 50: runme.runner.v2.RunnerService.ResolveProgram:output_type -> runme.runner.v2.ResolveProgramResponse - 43, // [43:51] is the sub-list for method output_type - 35, // [35:43] is the sub-list for method input_type - 35, // [35:35] is the sub-list for extension type_name - 35, // [35:35] is the sub-list for extension extendee - 0, // [0:35] is the sub-list for field type_name + 36, // 27: runme.runner.v2.MonitorEnvStoreRequest.snapshot_policy:type_name -> runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + 37, // 28: runme.runner.v2.MonitorEnvStoreResponseSnapshot.envs:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv + 3, // 29: runme.runner.v2.MonitorEnvStoreResponse.type:type_name -> runme.runner.v2.MonitorEnvStoreType + 28, // 30: runme.runner.v2.MonitorEnvStoreResponse.snapshot:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot + 0, // 31: runme.runner.v2.CreateSessionRequest.Config.env_store_type:type_name -> runme.runner.v2.SessionEnvStoreType + 4, // 32: runme.runner.v2.CreateSessionRequest.Config.env_store_seeding:type_name -> runme.runner.v2.CreateSessionRequest.Config.SessionEnvStoreSeeding + 7, // 33: runme.runner.v2.ResolveProgramResponse.VarResult.status:type_name -> runme.runner.v2.ResolveProgramResponse.Status + 8, // 34: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv.status:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.Status + 38, // 35: runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnv.errors:type_name -> runme.runner.v2.MonitorEnvStoreResponseSnapshot.Error + 11, // 36: runme.runner.v2.RunnerService.CreateSession:input_type -> runme.runner.v2.CreateSessionRequest + 13, // 37: runme.runner.v2.RunnerService.GetSession:input_type -> runme.runner.v2.GetSessionRequest + 15, // 38: runme.runner.v2.RunnerService.ListSessions:input_type -> runme.runner.v2.ListSessionsRequest + 17, // 39: runme.runner.v2.RunnerService.UpdateSession:input_type -> runme.runner.v2.UpdateSessionRequest + 19, // 40: runme.runner.v2.RunnerService.DeleteSession:input_type -> runme.runner.v2.DeleteSessionRequest + 27, // 41: runme.runner.v2.RunnerService.MonitorEnvStore:input_type -> runme.runner.v2.MonitorEnvStoreRequest + 22, // 42: runme.runner.v2.RunnerService.Execute:input_type -> runme.runner.v2.ExecuteRequest + 25, // 43: runme.runner.v2.RunnerService.ResolveProgram:input_type -> runme.runner.v2.ResolveProgramRequest + 12, // 44: runme.runner.v2.RunnerService.CreateSession:output_type -> runme.runner.v2.CreateSessionResponse + 14, // 45: runme.runner.v2.RunnerService.GetSession:output_type -> runme.runner.v2.GetSessionResponse + 16, // 46: runme.runner.v2.RunnerService.ListSessions:output_type -> runme.runner.v2.ListSessionsResponse + 18, // 47: runme.runner.v2.RunnerService.UpdateSession:output_type -> runme.runner.v2.UpdateSessionResponse + 20, // 48: runme.runner.v2.RunnerService.DeleteSession:output_type -> runme.runner.v2.DeleteSessionResponse + 29, // 49: runme.runner.v2.RunnerService.MonitorEnvStore:output_type -> runme.runner.v2.MonitorEnvStoreResponse + 23, // 50: runme.runner.v2.RunnerService.Execute:output_type -> runme.runner.v2.ExecuteResponse + 26, // 51: runme.runner.v2.RunnerService.ResolveProgram:output_type -> runme.runner.v2.ResolveProgramResponse + 44, // [44:52] is the sub-list for method output_type + 36, // [36:44] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name } func init() { file_runme_runner_v2_runner_proto_init() } @@ -2491,7 +2557,7 @@ func file_runme_runner_v2_runner_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_runme_runner_v2_runner_proto_rawDesc), len(file_runme_runner_v2_runner_proto_rawDesc)), NumEnums: 9, - NumMessages: 29, + NumMessages: 30, NumExtensions: 0, NumServices: 1, }, diff --git a/api/gen/proto/gql/runme/runner/v1/runner.graphql b/api/gen/proto/gql/runme/runner/v1/runner.graphql index c59c160e7..db1eedc5f 100644 --- a/api/gen/proto/gql/runme/runner/v1/runner.graphql +++ b/api/gen/proto/gql/runme/runner/v1/runner.graphql @@ -218,6 +218,11 @@ type ListSessionsResponse { } input MonitorEnvStoreRequestInput { session: SessionInput + snapshotPolicy: MonitorEnvStoreRequest_SnapshotPolicyInput +} +input MonitorEnvStoreRequest_SnapshotPolicyInput { + reveal: Boolean + insecure: Boolean } type MonitorEnvStoreResponse { type: MonitorEnvStoreType diff --git a/api/gen/proto/gql/runme/runner/v2/runner.graphql b/api/gen/proto/gql/runme/runner/v2/runner.graphql index 74895b856..e7ea66cdc 100644 --- a/api/gen/proto/gql/runme/runner/v2/runner.graphql +++ b/api/gen/proto/gql/runme/runner/v2/runner.graphql @@ -195,6 +195,11 @@ type ListSessionsResponse { } input MonitorEnvStoreRequestInput { session: SessionInput + snapshotPolicy: MonitorEnvStoreRequest_SnapshotPolicyInput +} +input MonitorEnvStoreRequest_SnapshotPolicyInput { + reveal: Boolean + insecure: Boolean } type MonitorEnvStoreResponse { type: MonitorEnvStoreType diff --git a/api/gen/proto/python/runme/runner/v1/runner_pb2.py b/api/gen/proto/python/runme/runner/v1/runner_pb2.py index 337da1657..e6e27bf3b 100644 --- a/api/gen/proto/python/runme/runner/v1/runner_pb2.py +++ b/api/gen/proto/python/runme/runner/v1/runner_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: runme/runner/v1/runner.proto -# Protobuf Python Version: 7.35.0 +# Protobuf Python Version: 7.35.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -13,7 +13,7 @@ _runtime_version.Domain.PUBLIC, 7, 35, - 0, + 1, '', 'runme/runner/v1/runner.proto' ) @@ -25,7 +25,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1crunme/runner/v1/runner.proto\x12\x0frunme.runner.v1\x1a\x1egoogle/protobuf/wrappers.proto\"\xae\x01\n\x07Session\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04\x65nvs\x18\x02 \x03(\tR\x04\x65nvs\x12\x42\n\x08metadata\x18\x03 \x03(\x0b\x32&.runme.runner.v1.Session.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xc9\x02\n\x14\x43reateSessionRequest\x12O\n\x08metadata\x18\x01 \x03(\x0b\x32\x33.runme.runner.v1.CreateSessionRequest.MetadataEntryR\x08metadata\x12\x12\n\x04\x65nvs\x18\x02 \x03(\tR\x04\x65nvs\x12\x37\n\x07project\x18\x03 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x00R\x07project\x88\x01\x01\x12J\n\x0e\x65nv_store_type\x18\x04 \x01(\x0e\x32$.runme.runner.v1.SessionEnvStoreTypeR\x0c\x65nvStoreType\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08_project\"K\n\x15\x43reateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\"#\n\x11GetSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"H\n\x12GetSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\"\x15\n\x13ListSessionsRequest\"L\n\x14ListSessionsResponse\x12\x34\n\x08sessions\x18\x01 \x03(\x0b\x32\x18.runme.runner.v1.SessionR\x08sessions\"&\n\x14\x44\x65leteSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"\x17\n\x15\x44\x65leteSessionResponse\"\xf1\x01\n\x07Project\x12\x12\n\x04root\x18\x01 \x01(\tR\x04root\x12$\n\x0e\x65nv_load_order\x18\x02 \x03(\tR\x0c\x65nvLoadOrder\x12>\n\nenv_direnv\x18\x03 \x01(\x0e\x32\x1f.runme.runner.v1.Project.DirEnvR\tenvDirenv\"l\n\x06\x44irEnv\x12\x17\n\x13\x44IR_ENV_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44IR_ENV_ENABLED_WARN\x10\x01\x12\x19\n\x15\x44IR_ENV_ENABLED_ERROR\x10\x02\x12\x14\n\x10\x44IR_ENV_DISABLED\x10\x03\"M\n\x07Winsize\x12\x12\n\x04rows\x18\x01 \x01(\rR\x04rows\x12\x12\n\x04\x63ols\x18\x02 \x01(\rR\x04\x63ols\x12\x0c\n\x01x\x18\x03 \x01(\rR\x01x\x12\x0c\n\x01y\x18\x04 \x01(\rR\x01y\"\xb6\x06\n\x0e\x45xecuteRequest\x12!\n\x0cprogram_name\x18\x01 \x01(\tR\x0bprogramName\x12\x1c\n\targuments\x18\x02 \x03(\tR\targuments\x12\x1c\n\tdirectory\x18\x03 \x01(\tR\tdirectory\x12\x12\n\x04\x65nvs\x18\x04 \x03(\tR\x04\x65nvs\x12\x1a\n\x08\x63ommands\x18\x05 \x03(\tR\x08\x63ommands\x12\x16\n\x06script\x18\x06 \x01(\tR\x06script\x12\x10\n\x03tty\x18\x07 \x01(\x08R\x03tty\x12\x1d\n\ninput_data\x18\x08 \x01(\x0cR\tinputData\x12\x30\n\x04stop\x18\t \x01(\x0e\x32\x1c.runme.runner.v1.ExecuteStopR\x04stop\x12\x37\n\x07winsize\x18\n \x01(\x0b\x32\x18.runme.runner.v1.WinsizeH\x00R\x07winsize\x88\x01\x01\x12\x1e\n\nbackground\x18\x0b \x01(\x08R\nbackground\x12\x1d\n\nsession_id\x18\x14 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x15 \x01(\x0e\x32 .runme.runner.v1.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x16 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x01R\x07project\x88\x01\x01\x12*\n\x11store_last_output\x18\x17 \x01(\x08R\x0fstoreLastOutput\x12?\n\x0c\x63ommand_mode\x18\x18 \x01(\x0e\x32\x1c.runme.runner.v1.CommandModeR\x0b\x63ommandMode\x12\x1f\n\x0blanguage_id\x18\x19 \x01(\tR\nlanguageId\x12%\n\x0e\x66ile_extension\x18\x1a \x01(\tR\rfileExtension\x12\x19\n\x08known_id\x18\x1b \x01(\tR\x07knownId\x12\x1d\n\nknown_name\x18\x1c \x01(\tR\tknownName\x12\x15\n\x06run_id\x18\x1d \x01(\tR\x05runIdB\n\n\x08_winsizeB\n\n\x08_project\"\x1e\n\nProcessPID\x12\x10\n\x03pid\x18\x01 \x01(\x03R\x03pid\"\xda\x01\n\x0f\x45xecuteResponse\x12\x39\n\texit_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x08\x65xitCode\x12\x1f\n\x0bstdout_data\x18\x02 \x01(\x0cR\nstdoutData\x12\x1f\n\x0bstderr_data\x18\x03 \x01(\x0cR\nstderrData\x12-\n\x03pid\x18\x04 \x01(\x0b\x32\x1b.runme.runner.v1.ProcessPIDR\x03pid\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\"1\n\x19ResolveProgramCommandList\x12\x14\n\x05lines\x18\x01 \x03(\tR\x05lines\"\x99\x05\n\x15ResolveProgramRequest\x12H\n\x08\x63ommands\x18\x01 \x01(\x0b\x32*.runme.runner.v1.ResolveProgramCommandListH\x00R\x08\x63ommands\x12\x18\n\x06script\x18\x02 \x01(\tH\x00R\x06script\x12?\n\x04mode\x18\x03 \x01(\x0e\x32+.runme.runner.v1.ResolveProgramRequest.ModeR\x04mode\x12\x10\n\x03\x65nv\x18\x04 \x03(\tR\x03\x65nv\x12\x1d\n\nsession_id\x18\x05 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x06 \x01(\x0e\x32 .runme.runner.v1.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x07 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x01R\x07project\x88\x01\x01\x12\x1f\n\x0blanguage_id\x18\x08 \x01(\tR\nlanguageId\x12N\n\tretention\x18\t \x01(\x0e\x32\x30.runme.runner.v1.ResolveProgramRequest.RetentionR\tretention\"D\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_PROMPT_ALL\x10\x01\x12\x11\n\rMODE_SKIP_ALL\x10\x02\"W\n\tRetention\x12\x19\n\x15RETENTION_UNSPECIFIED\x10\x00\x12\x17\n\x13RETENTION_FIRST_RUN\x10\x01\x12\x16\n\x12RETENTION_LAST_RUN\x10\x02\x42\x08\n\x06sourceB\n\n\x08_project\"\x9e\x04\n\x16ResolveProgramResponse\x12\x16\n\x06script\x18\x01 \x01(\tR\x06script\x12\x46\n\x08\x63ommands\x18\x02 \x01(\x0b\x32*.runme.runner.v1.ResolveProgramCommandListR\x08\x63ommands\x12\x45\n\x04vars\x18\x03 \x03(\x0b\x32\x31.runme.runner.v1.ResolveProgramResponse.VarResultR\x04vars\x1a\xb5\x01\n\tVarResult\x12\x46\n\x06status\x18\x01 \x01(\x0e\x32..runme.runner.v1.ResolveProgramResponse.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0eoriginal_value\x18\x03 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x04 \x01(\tR\rresolvedValue\"\xa4\x01\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\"\n\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x01\x12&\n\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x02\x12\x13\n\x0fSTATUS_RESOLVED\x10\x03\x12!\n\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"L\n\x16MonitorEnvStoreRequest\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\"\xca\x05\n\x1fMonitorEnvStoreResponseSnapshot\x12P\n\x04\x65nvs\x18\x01 \x03(\x0b\x32<.runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04\x65nvs\x1a\xc1\x03\n\x0bSnapshotEnv\x12O\n\x06status\x18\x01 \x01(\x0e\x32\x37.runme.runner.v1.MonitorEnvStoreResponseSnapshot.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n\x04spec\x18\x03 \x01(\tR\x04spec\x12\x16\n\x06origin\x18\x04 \x01(\tR\x06origin\x12%\n\x0eoriginal_value\x18\x05 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x06 \x01(\tR\rresolvedValue\x12\x1f\n\x0b\x63reate_time\x18\x07 \x01(\tR\ncreateTime\x12\x1f\n\x0bupdate_time\x18\x08 \x01(\tR\nupdateTime\x12N\n\x06\x65rrors\x18\t \x03(\x0b\x32\x36.runme.runner.v1.MonitorEnvStoreResponseSnapshot.ErrorR\x06\x65rrors\x12\x1f\n\x0bis_required\x18\n \x01(\x08R\nisRequired\x12 \n\x0b\x64\x65scription\x18\x0b \x01(\tR\x0b\x64\x65scription\x1a\x35\n\x05\x45rror\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"Z\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_LITERAL\x10\x01\x12\x11\n\rSTATUS_HIDDEN\x10\x02\x12\x11\n\rSTATUS_MASKED\x10\x03\"\xab\x01\n\x17MonitorEnvStoreResponse\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.runme.runner.v1.MonitorEnvStoreTypeR\x04type\x12N\n\x08snapshot\x18\x02 \x01(\x0b\x32\x30.runme.runner.v1.MonitorEnvStoreResponseSnapshotH\x00R\x08snapshotB\x06\n\x04\x64\x61ta*]\n\x13SessionEnvStoreType\x12&\n\"SESSION_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSESSION_ENV_STORE_TYPE_OWL\x10\x01*^\n\x0b\x45xecuteStop\x12\x1c\n\x18\x45XECUTE_STOP_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XECUTE_STOP_INTERRUPT\x10\x01\x12\x15\n\x11\x45XECUTE_STOP_KILL\x10\x02*\x9a\x01\n\x0b\x43ommandMode\x12\x1c\n\x18\x43OMMAND_MODE_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43OMMAND_MODE_INLINE_SHELL\x10\x01\x12\x1a\n\x16\x43OMMAND_MODE_TEMP_FILE\x10\x02\x12\x19\n\x15\x43OMMAND_MODE_TERMINAL\x10\x03\x12\x17\n\x13\x43OMMAND_MODE_DAGGER\x10\x04*U\n\x0fSessionStrategy\x12 \n\x1cSESSION_STRATEGY_UNSPECIFIED\x10\x00\x12 \n\x1cSESSION_STRATEGY_MOST_RECENT\x10\x01*b\n\x13MonitorEnvStoreType\x12&\n\"MONITOR_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fMONITOR_ENV_STORE_TYPE_SNAPSHOT\x10\x01\x32\xae\x05\n\rRunnerService\x12`\n\rCreateSession\x12%.runme.runner.v1.CreateSessionRequest\x1a&.runme.runner.v1.CreateSessionResponse\"\x00\x12W\n\nGetSession\x12\".runme.runner.v1.GetSessionRequest\x1a#.runme.runner.v1.GetSessionResponse\"\x00\x12]\n\x0cListSessions\x12$.runme.runner.v1.ListSessionsRequest\x1a%.runme.runner.v1.ListSessionsResponse\"\x00\x12`\n\rDeleteSession\x12%.runme.runner.v1.DeleteSessionRequest\x1a&.runme.runner.v1.DeleteSessionResponse\"\x00\x12h\n\x0fMonitorEnvStore\x12\'.runme.runner.v1.MonitorEnvStoreRequest\x1a(.runme.runner.v1.MonitorEnvStoreResponse\"\x00\x30\x01\x12R\n\x07\x45xecute\x12\x1f.runme.runner.v1.ExecuteRequest\x1a .runme.runner.v1.ExecuteResponse\"\x00(\x01\x30\x01\x12\x63\n\x0eResolveProgram\x12&.runme.runner.v1.ResolveProgramRequest\x1a\'.runme.runner.v1.ResolveProgramResponse\"\x00\x42HZFgithub.com/runmedev/runme/v3/api/gen/proto/go/runme/runner/v1;runnerv1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1crunme/runner/v1/runner.proto\x12\x0frunme.runner.v1\x1a\x1egoogle/protobuf/wrappers.proto\"\xae\x01\n\x07Session\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04\x65nvs\x18\x02 \x03(\tR\x04\x65nvs\x12\x42\n\x08metadata\x18\x03 \x03(\x0b\x32&.runme.runner.v1.Session.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xc9\x02\n\x14\x43reateSessionRequest\x12O\n\x08metadata\x18\x01 \x03(\x0b\x32\x33.runme.runner.v1.CreateSessionRequest.MetadataEntryR\x08metadata\x12\x12\n\x04\x65nvs\x18\x02 \x03(\tR\x04\x65nvs\x12\x37\n\x07project\x18\x03 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x00R\x07project\x88\x01\x01\x12J\n\x0e\x65nv_store_type\x18\x04 \x01(\x0e\x32$.runme.runner.v1.SessionEnvStoreTypeR\x0c\x65nvStoreType\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08_project\"K\n\x15\x43reateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\"#\n\x11GetSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"H\n\x12GetSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\"\x15\n\x13ListSessionsRequest\"L\n\x14ListSessionsResponse\x12\x34\n\x08sessions\x18\x01 \x03(\x0b\x32\x18.runme.runner.v1.SessionR\x08sessions\"&\n\x14\x44\x65leteSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"\x17\n\x15\x44\x65leteSessionResponse\"\xf1\x01\n\x07Project\x12\x12\n\x04root\x18\x01 \x01(\tR\x04root\x12$\n\x0e\x65nv_load_order\x18\x02 \x03(\tR\x0c\x65nvLoadOrder\x12>\n\nenv_direnv\x18\x03 \x01(\x0e\x32\x1f.runme.runner.v1.Project.DirEnvR\tenvDirenv\"l\n\x06\x44irEnv\x12\x17\n\x13\x44IR_ENV_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44IR_ENV_ENABLED_WARN\x10\x01\x12\x19\n\x15\x44IR_ENV_ENABLED_ERROR\x10\x02\x12\x14\n\x10\x44IR_ENV_DISABLED\x10\x03\"M\n\x07Winsize\x12\x12\n\x04rows\x18\x01 \x01(\rR\x04rows\x12\x12\n\x04\x63ols\x18\x02 \x01(\rR\x04\x63ols\x12\x0c\n\x01x\x18\x03 \x01(\rR\x01x\x12\x0c\n\x01y\x18\x04 \x01(\rR\x01y\"\xb6\x06\n\x0e\x45xecuteRequest\x12!\n\x0cprogram_name\x18\x01 \x01(\tR\x0bprogramName\x12\x1c\n\targuments\x18\x02 \x03(\tR\targuments\x12\x1c\n\tdirectory\x18\x03 \x01(\tR\tdirectory\x12\x12\n\x04\x65nvs\x18\x04 \x03(\tR\x04\x65nvs\x12\x1a\n\x08\x63ommands\x18\x05 \x03(\tR\x08\x63ommands\x12\x16\n\x06script\x18\x06 \x01(\tR\x06script\x12\x10\n\x03tty\x18\x07 \x01(\x08R\x03tty\x12\x1d\n\ninput_data\x18\x08 \x01(\x0cR\tinputData\x12\x30\n\x04stop\x18\t \x01(\x0e\x32\x1c.runme.runner.v1.ExecuteStopR\x04stop\x12\x37\n\x07winsize\x18\n \x01(\x0b\x32\x18.runme.runner.v1.WinsizeH\x00R\x07winsize\x88\x01\x01\x12\x1e\n\nbackground\x18\x0b \x01(\x08R\nbackground\x12\x1d\n\nsession_id\x18\x14 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x15 \x01(\x0e\x32 .runme.runner.v1.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x16 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x01R\x07project\x88\x01\x01\x12*\n\x11store_last_output\x18\x17 \x01(\x08R\x0fstoreLastOutput\x12?\n\x0c\x63ommand_mode\x18\x18 \x01(\x0e\x32\x1c.runme.runner.v1.CommandModeR\x0b\x63ommandMode\x12\x1f\n\x0blanguage_id\x18\x19 \x01(\tR\nlanguageId\x12%\n\x0e\x66ile_extension\x18\x1a \x01(\tR\rfileExtension\x12\x19\n\x08known_id\x18\x1b \x01(\tR\x07knownId\x12\x1d\n\nknown_name\x18\x1c \x01(\tR\tknownName\x12\x15\n\x06run_id\x18\x1d \x01(\tR\x05runIdB\n\n\x08_winsizeB\n\n\x08_project\"\x1e\n\nProcessPID\x12\x10\n\x03pid\x18\x01 \x01(\x03R\x03pid\"\xda\x01\n\x0f\x45xecuteResponse\x12\x39\n\texit_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x08\x65xitCode\x12\x1f\n\x0bstdout_data\x18\x02 \x01(\x0cR\nstdoutData\x12\x1f\n\x0bstderr_data\x18\x03 \x01(\x0cR\nstderrData\x12-\n\x03pid\x18\x04 \x01(\x0b\x32\x1b.runme.runner.v1.ProcessPIDR\x03pid\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\"1\n\x19ResolveProgramCommandList\x12\x14\n\x05lines\x18\x01 \x03(\tR\x05lines\"\x99\x05\n\x15ResolveProgramRequest\x12H\n\x08\x63ommands\x18\x01 \x01(\x0b\x32*.runme.runner.v1.ResolveProgramCommandListH\x00R\x08\x63ommands\x12\x18\n\x06script\x18\x02 \x01(\tH\x00R\x06script\x12?\n\x04mode\x18\x03 \x01(\x0e\x32+.runme.runner.v1.ResolveProgramRequest.ModeR\x04mode\x12\x10\n\x03\x65nv\x18\x04 \x03(\tR\x03\x65nv\x12\x1d\n\nsession_id\x18\x05 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x06 \x01(\x0e\x32 .runme.runner.v1.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x07 \x01(\x0b\x32\x18.runme.runner.v1.ProjectH\x01R\x07project\x88\x01\x01\x12\x1f\n\x0blanguage_id\x18\x08 \x01(\tR\nlanguageId\x12N\n\tretention\x18\t \x01(\x0e\x32\x30.runme.runner.v1.ResolveProgramRequest.RetentionR\tretention\"D\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_PROMPT_ALL\x10\x01\x12\x11\n\rMODE_SKIP_ALL\x10\x02\"W\n\tRetention\x12\x19\n\x15RETENTION_UNSPECIFIED\x10\x00\x12\x17\n\x13RETENTION_FIRST_RUN\x10\x01\x12\x16\n\x12RETENTION_LAST_RUN\x10\x02\x42\x08\n\x06sourceB\n\n\x08_project\"\x9e\x04\n\x16ResolveProgramResponse\x12\x16\n\x06script\x18\x01 \x01(\tR\x06script\x12\x46\n\x08\x63ommands\x18\x02 \x01(\x0b\x32*.runme.runner.v1.ResolveProgramCommandListR\x08\x63ommands\x12\x45\n\x04vars\x18\x03 \x03(\x0b\x32\x31.runme.runner.v1.ResolveProgramResponse.VarResultR\x04vars\x1a\xb5\x01\n\tVarResult\x12\x46\n\x06status\x18\x01 \x01(\x0e\x32..runme.runner.v1.ResolveProgramResponse.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0eoriginal_value\x18\x03 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x04 \x01(\tR\rresolvedValue\"\xa4\x01\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\"\n\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x01\x12&\n\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x02\x12\x13\n\x0fSTATUS_RESOLVED\x10\x03\x12!\n\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"\xf3\x01\n\x16MonitorEnvStoreRequest\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v1.SessionR\x07session\x12_\n\x0fsnapshot_policy\x18\x02 \x01(\x0b\x32\x36.runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicyR\x0esnapshotPolicy\x1a\x44\n\x0eSnapshotPolicy\x12\x16\n\x06reveal\x18\x01 \x01(\x08R\x06reveal\x12\x1a\n\x08insecure\x18\x02 \x01(\x08R\x08insecure\"\xca\x05\n\x1fMonitorEnvStoreResponseSnapshot\x12P\n\x04\x65nvs\x18\x01 \x03(\x0b\x32<.runme.runner.v1.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04\x65nvs\x1a\xc1\x03\n\x0bSnapshotEnv\x12O\n\x06status\x18\x01 \x01(\x0e\x32\x37.runme.runner.v1.MonitorEnvStoreResponseSnapshot.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n\x04spec\x18\x03 \x01(\tR\x04spec\x12\x16\n\x06origin\x18\x04 \x01(\tR\x06origin\x12%\n\x0eoriginal_value\x18\x05 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x06 \x01(\tR\rresolvedValue\x12\x1f\n\x0b\x63reate_time\x18\x07 \x01(\tR\ncreateTime\x12\x1f\n\x0bupdate_time\x18\x08 \x01(\tR\nupdateTime\x12N\n\x06\x65rrors\x18\t \x03(\x0b\x32\x36.runme.runner.v1.MonitorEnvStoreResponseSnapshot.ErrorR\x06\x65rrors\x12\x1f\n\x0bis_required\x18\n \x01(\x08R\nisRequired\x12 \n\x0b\x64\x65scription\x18\x0b \x01(\tR\x0b\x64\x65scription\x1a\x35\n\x05\x45rror\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"Z\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_LITERAL\x10\x01\x12\x11\n\rSTATUS_HIDDEN\x10\x02\x12\x11\n\rSTATUS_MASKED\x10\x03\"\xab\x01\n\x17MonitorEnvStoreResponse\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.runme.runner.v1.MonitorEnvStoreTypeR\x04type\x12N\n\x08snapshot\x18\x02 \x01(\x0b\x32\x30.runme.runner.v1.MonitorEnvStoreResponseSnapshotH\x00R\x08snapshotB\x06\n\x04\x64\x61ta*]\n\x13SessionEnvStoreType\x12&\n\"SESSION_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSESSION_ENV_STORE_TYPE_OWL\x10\x01*^\n\x0b\x45xecuteStop\x12\x1c\n\x18\x45XECUTE_STOP_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XECUTE_STOP_INTERRUPT\x10\x01\x12\x15\n\x11\x45XECUTE_STOP_KILL\x10\x02*\x9a\x01\n\x0b\x43ommandMode\x12\x1c\n\x18\x43OMMAND_MODE_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43OMMAND_MODE_INLINE_SHELL\x10\x01\x12\x1a\n\x16\x43OMMAND_MODE_TEMP_FILE\x10\x02\x12\x19\n\x15\x43OMMAND_MODE_TERMINAL\x10\x03\x12\x17\n\x13\x43OMMAND_MODE_DAGGER\x10\x04*U\n\x0fSessionStrategy\x12 \n\x1cSESSION_STRATEGY_UNSPECIFIED\x10\x00\x12 \n\x1cSESSION_STRATEGY_MOST_RECENT\x10\x01*b\n\x13MonitorEnvStoreType\x12&\n\"MONITOR_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fMONITOR_ENV_STORE_TYPE_SNAPSHOT\x10\x01\x32\xae\x05\n\rRunnerService\x12`\n\rCreateSession\x12%.runme.runner.v1.CreateSessionRequest\x1a&.runme.runner.v1.CreateSessionResponse\"\x00\x12W\n\nGetSession\x12\".runme.runner.v1.GetSessionRequest\x1a#.runme.runner.v1.GetSessionResponse\"\x00\x12]\n\x0cListSessions\x12$.runme.runner.v1.ListSessionsRequest\x1a%.runme.runner.v1.ListSessionsResponse\"\x00\x12`\n\rDeleteSession\x12%.runme.runner.v1.DeleteSessionRequest\x1a&.runme.runner.v1.DeleteSessionResponse\"\x00\x12h\n\x0fMonitorEnvStore\x12\'.runme.runner.v1.MonitorEnvStoreRequest\x1a(.runme.runner.v1.MonitorEnvStoreResponse\"\x00\x30\x01\x12R\n\x07\x45xecute\x12\x1f.runme.runner.v1.ExecuteRequest\x1a .runme.runner.v1.ExecuteResponse\"\x00(\x01\x30\x01\x12\x63\n\x0eResolveProgram\x12&.runme.runner.v1.ResolveProgramRequest\x1a\'.runme.runner.v1.ResolveProgramResponse\"\x00\x42HZFgithub.com/runmedev/runme/v3/api/gen/proto/go/runme/runner/v1;runnerv1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -37,16 +37,16 @@ _globals['_SESSION_METADATAENTRY']._serialized_options = b'8\001' _globals['_CREATESESSIONREQUEST_METADATAENTRY']._loaded_options = None _globals['_CREATESESSIONREQUEST_METADATAENTRY']._serialized_options = b'8\001' - _globals['_SESSIONENVSTORETYPE']._serialized_start=4578 - _globals['_SESSIONENVSTORETYPE']._serialized_end=4671 - _globals['_EXECUTESTOP']._serialized_start=4673 - _globals['_EXECUTESTOP']._serialized_end=4767 - _globals['_COMMANDMODE']._serialized_start=4770 - _globals['_COMMANDMODE']._serialized_end=4924 - _globals['_SESSIONSTRATEGY']._serialized_start=4926 - _globals['_SESSIONSTRATEGY']._serialized_end=5011 - _globals['_MONITORENVSTORETYPE']._serialized_start=5013 - _globals['_MONITORENVSTORETYPE']._serialized_end=5111 + _globals['_SESSIONENVSTORETYPE']._serialized_start=4746 + _globals['_SESSIONENVSTORETYPE']._serialized_end=4839 + _globals['_EXECUTESTOP']._serialized_start=4841 + _globals['_EXECUTESTOP']._serialized_end=4935 + _globals['_COMMANDMODE']._serialized_start=4938 + _globals['_COMMANDMODE']._serialized_end=5092 + _globals['_SESSIONSTRATEGY']._serialized_start=5094 + _globals['_SESSIONSTRATEGY']._serialized_end=5179 + _globals['_MONITORENVSTORETYPE']._serialized_start=5181 + _globals['_MONITORENVSTORETYPE']._serialized_end=5279 _globals['_SESSION']._serialized_start=82 _globals['_SESSION']._serialized_end=256 _globals['_SESSION_METADATAENTRY']._serialized_start=197 @@ -95,18 +95,20 @@ _globals['_RESOLVEPROGRAMRESPONSE_VARRESULT']._serialized_end=3440 _globals['_RESOLVEPROGRAMRESPONSE_STATUS']._serialized_start=3443 _globals['_RESOLVEPROGRAMRESPONSE_STATUS']._serialized_end=3607 - _globals['_MONITORENVSTOREREQUEST']._serialized_start=3609 - _globals['_MONITORENVSTOREREQUEST']._serialized_end=3685 - _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_start=3688 - _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_end=4402 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_start=3806 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_end=4255 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_start=4257 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_end=4310 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_start=4312 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_end=4402 - _globals['_MONITORENVSTORERESPONSE']._serialized_start=4405 - _globals['_MONITORENVSTORERESPONSE']._serialized_end=4576 - _globals['_RUNNERSERVICE']._serialized_start=5114 - _globals['_RUNNERSERVICE']._serialized_end=5800 + _globals['_MONITORENVSTOREREQUEST']._serialized_start=3610 + _globals['_MONITORENVSTOREREQUEST']._serialized_end=3853 + _globals['_MONITORENVSTOREREQUEST_SNAPSHOTPOLICY']._serialized_start=3785 + _globals['_MONITORENVSTOREREQUEST_SNAPSHOTPOLICY']._serialized_end=3853 + _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_start=3856 + _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_end=4570 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_start=3974 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_end=4423 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_start=4425 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_end=4478 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_start=4480 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_end=4570 + _globals['_MONITORENVSTORERESPONSE']._serialized_start=4573 + _globals['_MONITORENVSTORERESPONSE']._serialized_end=4744 + _globals['_RUNNERSERVICE']._serialized_start=5282 + _globals['_RUNNERSERVICE']._serialized_end=5968 # @@protoc_insertion_point(module_scope) diff --git a/api/gen/proto/python/runme/runner/v1/runner_pb2.pyi b/api/gen/proto/python/runme/runner/v1/runner_pb2.pyi index e6368fd7c..afb70c794 100644 --- a/api/gen/proto/python/runme/runner/v1/runner_pb2.pyi +++ b/api/gen/proto/python/runme/runner/v1/runner_pb2.pyi @@ -301,10 +301,19 @@ class ResolveProgramResponse(_message.Message): def __init__(self, script: _Optional[str] = ..., commands: _Optional[_Union[ResolveProgramCommandList, _Mapping]] = ..., vars: _Optional[_Iterable[_Union[ResolveProgramResponse.VarResult, _Mapping]]] = ...) -> None: ... class MonitorEnvStoreRequest(_message.Message): - __slots__ = ("session",) + __slots__ = ("session", "snapshot_policy") + class SnapshotPolicy(_message.Message): + __slots__ = ("reveal", "insecure") + REVEAL_FIELD_NUMBER: _ClassVar[int] + INSECURE_FIELD_NUMBER: _ClassVar[int] + reveal: bool + insecure: bool + def __init__(self, reveal: _Optional[bool] = ..., insecure: _Optional[bool] = ...) -> None: ... SESSION_FIELD_NUMBER: _ClassVar[int] + SNAPSHOT_POLICY_FIELD_NUMBER: _ClassVar[int] session: Session - def __init__(self, session: _Optional[_Union[Session, _Mapping]] = ...) -> None: ... + snapshot_policy: MonitorEnvStoreRequest.SnapshotPolicy + def __init__(self, session: _Optional[_Union[Session, _Mapping]] = ..., snapshot_policy: _Optional[_Union[MonitorEnvStoreRequest.SnapshotPolicy, _Mapping]] = ...) -> None: ... class MonitorEnvStoreResponseSnapshot(_message.Message): __slots__ = ("envs",) diff --git a/api/gen/proto/python/runme/runner/v2/runner_pb2.py b/api/gen/proto/python/runme/runner/v2/runner_pb2.py index 51c8c0838..bde2ff5bb 100644 --- a/api/gen/proto/python/runme/runner/v2/runner_pb2.py +++ b/api/gen/proto/python/runme/runner/v2/runner_pb2.py @@ -2,7 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE # source: runme/runner/v2/runner.proto -# Protobuf Python Version: 7.35.0 +# Protobuf Python Version: 7.35.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -13,7 +13,7 @@ _runtime_version.Domain.PUBLIC, 7, 35, - 0, + 1, '', 'runme/runner/v2/runner.proto' ) @@ -26,7 +26,7 @@ from runme.runner.v2 import config_pb2 as runme_dot_runner_dot_v2_dot_config__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1crunme/runner/v2/runner.proto\x12\x0frunme.runner.v2\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1crunme/runner/v2/config.proto\"C\n\x07Project\x12\x12\n\x04root\x18\x01 \x01(\tR\x04root\x12$\n\x0e\x65nv_load_order\x18\x02 \x03(\tR\x0c\x65nvLoadOrder\"\xac\x01\n\x07Session\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x65nv\x18\x02 \x03(\tR\x03\x65nv\x12\x42\n\x08metadata\x18\x03 \x03(\x0b\x32&.runme.runner.v2.Session.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x8b\x06\n\x14\x43reateSessionRequest\x12O\n\x08metadata\x18\x01 \x03(\x0b\x32\x33.runme.runner.v2.CreateSessionRequest.MetadataEntryR\x08metadata\x12\x10\n\x03\x65nv\x18\x02 \x03(\tR\x03\x65nv\x12\x37\n\x07project\x18\x03 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x00R\x07project\x88\x01\x01\x12O\n\x0e\x65nv_store_type\x18\x04 \x01(\x0e\x32$.runme.runner.v2.SessionEnvStoreTypeH\x01R\x0c\x65nvStoreType\x88\x01\x01\x12\x44\n\x06\x63onfig\x18\x05 \x01(\x0b\x32,.runme.runner.v2.CreateSessionRequest.ConfigR\x06\x63onfig\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\xe3\x02\n\x06\x43onfig\x12O\n\x0e\x65nv_store_type\x18\x01 \x01(\x0e\x32$.runme.runner.v2.SessionEnvStoreTypeH\x00R\x0c\x65nvStoreType\x88\x01\x01\x12t\n\x11\x65nv_store_seeding\x18\x02 \x01(\x0e\x32\x43.runme.runner.v2.CreateSessionRequest.Config.SessionEnvStoreSeedingH\x01R\x0f\x65nvStoreSeeding\x88\x01\x01\"i\n\x16SessionEnvStoreSeeding\x12)\n%SESSION_ENV_STORE_SEEDING_UNSPECIFIED\x10\x00\x12$\n SESSION_ENV_STORE_SEEDING_SYSTEM\x10\x01\x42\x11\n\x0f_env_store_typeB\x14\n\x12_env_store_seedingB\n\n\x08_projectB\x11\n\x0f_env_store_type\"K\n\x15\x43reateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"#\n\x11GetSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"H\n\x12GetSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"\x15\n\x13ListSessionsRequest\"L\n\x14ListSessionsResponse\x12\x34\n\x08sessions\x18\x01 \x03(\x0b\x32\x18.runme.runner.v2.SessionR\x08sessions\"\x8b\x02\n\x14UpdateSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12O\n\x08metadata\x18\x02 \x03(\x0b\x32\x33.runme.runner.v2.UpdateSessionRequest.MetadataEntryR\x08metadata\x12\x10\n\x03\x65nv\x18\x03 \x03(\tR\x03\x65nv\x12\x37\n\x07project\x18\x04 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x00R\x07project\x88\x01\x01\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08_project\"K\n\x15UpdateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"&\n\x14\x44\x65leteSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"\x17\n\x15\x44\x65leteSessionResponse\"M\n\x07Winsize\x12\x12\n\x04rows\x18\x01 \x01(\rR\x04rows\x12\x12\n\x04\x63ols\x18\x02 \x01(\rR\x04\x63ols\x12\x0c\n\x01x\x18\x03 \x01(\rR\x01x\x12\x0c\n\x01y\x18\x04 \x01(\rR\x01y\"\xbe\x03\n\x0e\x45xecuteRequest\x12\x36\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1e.runme.runner.v2.ProgramConfigR\x06\x63onfig\x12\x1d\n\ninput_data\x18\x08 \x01(\x0cR\tinputData\x12\x30\n\x04stop\x18\t \x01(\x0e\x32\x1c.runme.runner.v2.ExecuteStopR\x04stop\x12\x37\n\x07winsize\x18\n \x01(\x0b\x32\x18.runme.runner.v2.WinsizeH\x00R\x07winsize\x88\x01\x01\x12\x1d\n\nsession_id\x18\x14 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x15 \x01(\x0e\x32 .runme.runner.v2.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x16 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x01R\x07project\x88\x01\x01\x12-\n\x13store_stdout_in_env\x18\x17 \x01(\x08R\x10storeStdoutInEnvB\n\n\x08_winsizeB\n\n\x08_project\"\xd0\x02\n\x0f\x45xecuteResponse\x12\x39\n\texit_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x08\x65xitCode\x12\x1f\n\x0bstdout_data\x18\x02 \x01(\x0cR\nstdoutData\x12\x1f\n\x0bstderr_data\x18\x03 \x01(\x0cR\nstderrData\x12.\n\x03pid\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x03pid\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12\x36\n\x03pwd\x18\x07 \x01(\x0b\x32$.runme.runner.v2.ExecuteResponse.PwdR\x03pwd\x1a;\n\x03Pwd\x12\x18\n\x07\x63urrent\x18\x01 \x01(\tR\x07\x63urrent\x12\x1a\n\x08previous\x18\x02 \x01(\tR\x08previous\"1\n\x19ResolveProgramCommandList\x12\x14\n\x05lines\x18\x01 \x03(\tR\x05lines\"\x99\x05\n\x15ResolveProgramRequest\x12H\n\x08\x63ommands\x18\x01 \x01(\x0b\x32*.runme.runner.v2.ResolveProgramCommandListH\x00R\x08\x63ommands\x12\x18\n\x06script\x18\x02 \x01(\tH\x00R\x06script\x12?\n\x04mode\x18\x03 \x01(\x0e\x32+.runme.runner.v2.ResolveProgramRequest.ModeR\x04mode\x12\x10\n\x03\x65nv\x18\x04 \x03(\tR\x03\x65nv\x12\x1d\n\nsession_id\x18\x05 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x06 \x01(\x0e\x32 .runme.runner.v2.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x07 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x01R\x07project\x88\x01\x01\x12\x1f\n\x0blanguage_id\x18\x08 \x01(\tR\nlanguageId\x12N\n\tretention\x18\t \x01(\x0e\x32\x30.runme.runner.v2.ResolveProgramRequest.RetentionR\tretention\"D\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_PROMPT_ALL\x10\x01\x12\x11\n\rMODE_SKIP_ALL\x10\x02\"W\n\tRetention\x12\x19\n\x15RETENTION_UNSPECIFIED\x10\x00\x12\x17\n\x13RETENTION_FIRST_RUN\x10\x01\x12\x16\n\x12RETENTION_LAST_RUN\x10\x02\x42\x08\n\x06sourceB\n\n\x08_project\"\x9e\x04\n\x16ResolveProgramResponse\x12\x16\n\x06script\x18\x01 \x01(\tR\x06script\x12\x46\n\x08\x63ommands\x18\x02 \x01(\x0b\x32*.runme.runner.v2.ResolveProgramCommandListR\x08\x63ommands\x12\x45\n\x04vars\x18\x03 \x03(\x0b\x32\x31.runme.runner.v2.ResolveProgramResponse.VarResultR\x04vars\x1a\xb5\x01\n\tVarResult\x12\x46\n\x06status\x18\x01 \x01(\x0e\x32..runme.runner.v2.ResolveProgramResponse.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0eoriginal_value\x18\x03 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x04 \x01(\tR\rresolvedValue\"\xa4\x01\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_RESOLVED\x10\x01\x12\"\n\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x02\x12&\n\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x03\x12!\n\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"L\n\x16MonitorEnvStoreRequest\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"\xca\x05\n\x1fMonitorEnvStoreResponseSnapshot\x12P\n\x04\x65nvs\x18\x01 \x03(\x0b\x32<.runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04\x65nvs\x1a\xc1\x03\n\x0bSnapshotEnv\x12O\n\x06status\x18\x01 \x01(\x0e\x32\x37.runme.runner.v2.MonitorEnvStoreResponseSnapshot.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04spec\x18\x04 \x01(\tR\x04spec\x12\x1f\n\x0bis_required\x18\x05 \x01(\x08R\nisRequired\x12\x16\n\x06origin\x18\x06 \x01(\tR\x06origin\x12%\n\x0eoriginal_value\x18\x07 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x08 \x01(\tR\rresolvedValue\x12\x1f\n\x0b\x63reate_time\x18\t \x01(\tR\ncreateTime\x12\x1f\n\x0bupdate_time\x18\n \x01(\tR\nupdateTime\x12N\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x36.runme.runner.v2.MonitorEnvStoreResponseSnapshot.ErrorR\x06\x65rrors\x1a\x35\n\x05\x45rror\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"Z\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_LITERAL\x10\x01\x12\x11\n\rSTATUS_HIDDEN\x10\x02\x12\x11\n\rSTATUS_MASKED\x10\x03\"\xab\x01\n\x17MonitorEnvStoreResponse\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.runme.runner.v2.MonitorEnvStoreTypeR\x04type\x12N\n\x08snapshot\x18\x02 \x01(\x0b\x32\x30.runme.runner.v2.MonitorEnvStoreResponseSnapshotH\x00R\x08snapshotB\x06\n\x04\x64\x61ta*]\n\x13SessionEnvStoreType\x12&\n\"SESSION_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSESSION_ENV_STORE_TYPE_OWL\x10\x01*^\n\x0b\x45xecuteStop\x12\x1c\n\x18\x45XECUTE_STOP_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XECUTE_STOP_INTERRUPT\x10\x01\x12\x15\n\x11\x45XECUTE_STOP_KILL\x10\x02*U\n\x0fSessionStrategy\x12 \n\x1cSESSION_STRATEGY_UNSPECIFIED\x10\x00\x12 \n\x1cSESSION_STRATEGY_MOST_RECENT\x10\x01*b\n\x13MonitorEnvStoreType\x12&\n\"MONITOR_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fMONITOR_ENV_STORE_TYPE_SNAPSHOT\x10\x01\x32\x90\x06\n\rRunnerService\x12`\n\rCreateSession\x12%.runme.runner.v2.CreateSessionRequest\x1a&.runme.runner.v2.CreateSessionResponse\"\x00\x12W\n\nGetSession\x12\".runme.runner.v2.GetSessionRequest\x1a#.runme.runner.v2.GetSessionResponse\"\x00\x12]\n\x0cListSessions\x12$.runme.runner.v2.ListSessionsRequest\x1a%.runme.runner.v2.ListSessionsResponse\"\x00\x12`\n\rUpdateSession\x12%.runme.runner.v2.UpdateSessionRequest\x1a&.runme.runner.v2.UpdateSessionResponse\"\x00\x12`\n\rDeleteSession\x12%.runme.runner.v2.DeleteSessionRequest\x1a&.runme.runner.v2.DeleteSessionResponse\"\x00\x12h\n\x0fMonitorEnvStore\x12\'.runme.runner.v2.MonitorEnvStoreRequest\x1a(.runme.runner.v2.MonitorEnvStoreResponse\"\x00\x30\x01\x12R\n\x07\x45xecute\x12\x1f.runme.runner.v2.ExecuteRequest\x1a .runme.runner.v2.ExecuteResponse\"\x00(\x01\x30\x01\x12\x63\n\x0eResolveProgram\x12&.runme.runner.v2.ResolveProgramRequest\x1a\'.runme.runner.v2.ResolveProgramResponse\"\x00\x42HZFgithub.com/runmedev/runme/v3/api/gen/proto/go/runme/runner/v2;runnerv2b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1crunme/runner/v2/runner.proto\x12\x0frunme.runner.v2\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1crunme/runner/v2/config.proto\"C\n\x07Project\x12\x12\n\x04root\x18\x01 \x01(\tR\x04root\x12$\n\x0e\x65nv_load_order\x18\x02 \x03(\tR\x0c\x65nvLoadOrder\"\xac\x01\n\x07Session\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03\x65nv\x18\x02 \x03(\tR\x03\x65nv\x12\x42\n\x08metadata\x18\x03 \x03(\x0b\x32&.runme.runner.v2.Session.MetadataEntryR\x08metadata\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x8b\x06\n\x14\x43reateSessionRequest\x12O\n\x08metadata\x18\x01 \x03(\x0b\x32\x33.runme.runner.v2.CreateSessionRequest.MetadataEntryR\x08metadata\x12\x10\n\x03\x65nv\x18\x02 \x03(\tR\x03\x65nv\x12\x37\n\x07project\x18\x03 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x00R\x07project\x88\x01\x01\x12O\n\x0e\x65nv_store_type\x18\x04 \x01(\x0e\x32$.runme.runner.v2.SessionEnvStoreTypeH\x01R\x0c\x65nvStoreType\x88\x01\x01\x12\x44\n\x06\x63onfig\x18\x05 \x01(\x0b\x32,.runme.runner.v2.CreateSessionRequest.ConfigR\x06\x63onfig\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x1a\xe3\x02\n\x06\x43onfig\x12O\n\x0e\x65nv_store_type\x18\x01 \x01(\x0e\x32$.runme.runner.v2.SessionEnvStoreTypeH\x00R\x0c\x65nvStoreType\x88\x01\x01\x12t\n\x11\x65nv_store_seeding\x18\x02 \x01(\x0e\x32\x43.runme.runner.v2.CreateSessionRequest.Config.SessionEnvStoreSeedingH\x01R\x0f\x65nvStoreSeeding\x88\x01\x01\"i\n\x16SessionEnvStoreSeeding\x12)\n%SESSION_ENV_STORE_SEEDING_UNSPECIFIED\x10\x00\x12$\n SESSION_ENV_STORE_SEEDING_SYSTEM\x10\x01\x42\x11\n\x0f_env_store_typeB\x14\n\x12_env_store_seedingB\n\n\x08_projectB\x11\n\x0f_env_store_type\"K\n\x15\x43reateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"#\n\x11GetSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"H\n\x12GetSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"\x15\n\x13ListSessionsRequest\"L\n\x14ListSessionsResponse\x12\x34\n\x08sessions\x18\x01 \x03(\x0b\x32\x18.runme.runner.v2.SessionR\x08sessions\"\x8b\x02\n\x14UpdateSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12O\n\x08metadata\x18\x02 \x03(\x0b\x32\x33.runme.runner.v2.UpdateSessionRequest.MetadataEntryR\x08metadata\x12\x10\n\x03\x65nv\x18\x03 \x03(\tR\x03\x65nv\x12\x37\n\x07project\x18\x04 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x00R\x07project\x88\x01\x01\x1a;\n\rMetadataEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\n\n\x08_project\"K\n\x15UpdateSessionResponse\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\"&\n\x14\x44\x65leteSessionRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\"\x17\n\x15\x44\x65leteSessionResponse\"M\n\x07Winsize\x12\x12\n\x04rows\x18\x01 \x01(\rR\x04rows\x12\x12\n\x04\x63ols\x18\x02 \x01(\rR\x04\x63ols\x12\x0c\n\x01x\x18\x03 \x01(\rR\x01x\x12\x0c\n\x01y\x18\x04 \x01(\rR\x01y\"\xbe\x03\n\x0e\x45xecuteRequest\x12\x36\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1e.runme.runner.v2.ProgramConfigR\x06\x63onfig\x12\x1d\n\ninput_data\x18\x08 \x01(\x0cR\tinputData\x12\x30\n\x04stop\x18\t \x01(\x0e\x32\x1c.runme.runner.v2.ExecuteStopR\x04stop\x12\x37\n\x07winsize\x18\n \x01(\x0b\x32\x18.runme.runner.v2.WinsizeH\x00R\x07winsize\x88\x01\x01\x12\x1d\n\nsession_id\x18\x14 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x15 \x01(\x0e\x32 .runme.runner.v2.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x16 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x01R\x07project\x88\x01\x01\x12-\n\x13store_stdout_in_env\x18\x17 \x01(\x08R\x10storeStdoutInEnvB\n\n\x08_winsizeB\n\n\x08_project\"\xd0\x02\n\x0f\x45xecuteResponse\x12\x39\n\texit_code\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x08\x65xitCode\x12\x1f\n\x0bstdout_data\x18\x02 \x01(\x0cR\nstdoutData\x12\x1f\n\x0bstderr_data\x18\x03 \x01(\x0cR\nstderrData\x12.\n\x03pid\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32ValueR\x03pid\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12\x36\n\x03pwd\x18\x07 \x01(\x0b\x32$.runme.runner.v2.ExecuteResponse.PwdR\x03pwd\x1a;\n\x03Pwd\x12\x18\n\x07\x63urrent\x18\x01 \x01(\tR\x07\x63urrent\x12\x1a\n\x08previous\x18\x02 \x01(\tR\x08previous\"1\n\x19ResolveProgramCommandList\x12\x14\n\x05lines\x18\x01 \x03(\tR\x05lines\"\x99\x05\n\x15ResolveProgramRequest\x12H\n\x08\x63ommands\x18\x01 \x01(\x0b\x32*.runme.runner.v2.ResolveProgramCommandListH\x00R\x08\x63ommands\x12\x18\n\x06script\x18\x02 \x01(\tH\x00R\x06script\x12?\n\x04mode\x18\x03 \x01(\x0e\x32+.runme.runner.v2.ResolveProgramRequest.ModeR\x04mode\x12\x10\n\x03\x65nv\x18\x04 \x03(\tR\x03\x65nv\x12\x1d\n\nsession_id\x18\x05 \x01(\tR\tsessionId\x12K\n\x10session_strategy\x18\x06 \x01(\x0e\x32 .runme.runner.v2.SessionStrategyR\x0fsessionStrategy\x12\x37\n\x07project\x18\x07 \x01(\x0b\x32\x18.runme.runner.v2.ProjectH\x01R\x07project\x88\x01\x01\x12\x1f\n\x0blanguage_id\x18\x08 \x01(\tR\nlanguageId\x12N\n\tretention\x18\t \x01(\x0e\x32\x30.runme.runner.v2.ResolveProgramRequest.RetentionR\tretention\"D\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x13\n\x0fMODE_PROMPT_ALL\x10\x01\x12\x11\n\rMODE_SKIP_ALL\x10\x02\"W\n\tRetention\x12\x19\n\x15RETENTION_UNSPECIFIED\x10\x00\x12\x17\n\x13RETENTION_FIRST_RUN\x10\x01\x12\x16\n\x12RETENTION_LAST_RUN\x10\x02\x42\x08\n\x06sourceB\n\n\x08_project\"\x9e\x04\n\x16ResolveProgramResponse\x12\x16\n\x06script\x18\x01 \x01(\tR\x06script\x12\x46\n\x08\x63ommands\x18\x02 \x01(\x0b\x32*.runme.runner.v2.ResolveProgramCommandListR\x08\x63ommands\x12\x45\n\x04vars\x18\x03 \x03(\x0b\x32\x31.runme.runner.v2.ResolveProgramResponse.VarResultR\x04vars\x1a\xb5\x01\n\tVarResult\x12\x46\n\x06status\x18\x01 \x01(\x0e\x32..runme.runner.v2.ResolveProgramResponse.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0eoriginal_value\x18\x03 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x04 \x01(\tR\rresolvedValue\"\xa4\x01\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0fSTATUS_RESOLVED\x10\x01\x12\"\n\x1eSTATUS_UNRESOLVED_WITH_MESSAGE\x10\x02\x12&\n\"STATUS_UNRESOLVED_WITH_PLACEHOLDER\x10\x03\x12!\n\x1dSTATUS_UNRESOLVED_WITH_SECRET\x10\x04\"\xf3\x01\n\x16MonitorEnvStoreRequest\x12\x32\n\x07session\x18\x01 \x01(\x0b\x32\x18.runme.runner.v2.SessionR\x07session\x12_\n\x0fsnapshot_policy\x18\x02 \x01(\x0b\x32\x36.runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicyR\x0esnapshotPolicy\x1a\x44\n\x0eSnapshotPolicy\x12\x16\n\x06reveal\x18\x01 \x01(\x08R\x06reveal\x12\x1a\n\x08insecure\x18\x02 \x01(\x08R\x08insecure\"\xca\x05\n\x1fMonitorEnvStoreResponseSnapshot\x12P\n\x04\x65nvs\x18\x01 \x03(\x0b\x32<.runme.runner.v2.MonitorEnvStoreResponseSnapshot.SnapshotEnvR\x04\x65nvs\x1a\xc1\x03\n\x0bSnapshotEnv\x12O\n\x06status\x18\x01 \x01(\x0e\x32\x37.runme.runner.v2.MonitorEnvStoreResponseSnapshot.StatusR\x06status\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x12\n\x04spec\x18\x04 \x01(\tR\x04spec\x12\x1f\n\x0bis_required\x18\x05 \x01(\x08R\nisRequired\x12\x16\n\x06origin\x18\x06 \x01(\tR\x06origin\x12%\n\x0eoriginal_value\x18\x07 \x01(\tR\roriginalValue\x12%\n\x0eresolved_value\x18\x08 \x01(\tR\rresolvedValue\x12\x1f\n\x0b\x63reate_time\x18\t \x01(\tR\ncreateTime\x12\x1f\n\x0bupdate_time\x18\n \x01(\tR\nupdateTime\x12N\n\x06\x65rrors\x18\x0b \x03(\x0b\x32\x36.runme.runner.v2.MonitorEnvStoreResponseSnapshot.ErrorR\x06\x65rrors\x1a\x35\n\x05\x45rror\x12\x12\n\x04\x63ode\x18\x01 \x01(\rR\x04\x63ode\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"Z\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_LITERAL\x10\x01\x12\x11\n\rSTATUS_HIDDEN\x10\x02\x12\x11\n\rSTATUS_MASKED\x10\x03\"\xab\x01\n\x17MonitorEnvStoreResponse\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.runme.runner.v2.MonitorEnvStoreTypeR\x04type\x12N\n\x08snapshot\x18\x02 \x01(\x0b\x32\x30.runme.runner.v2.MonitorEnvStoreResponseSnapshotH\x00R\x08snapshotB\x06\n\x04\x64\x61ta*]\n\x13SessionEnvStoreType\x12&\n\"SESSION_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSESSION_ENV_STORE_TYPE_OWL\x10\x01*^\n\x0b\x45xecuteStop\x12\x1c\n\x18\x45XECUTE_STOP_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x45XECUTE_STOP_INTERRUPT\x10\x01\x12\x15\n\x11\x45XECUTE_STOP_KILL\x10\x02*U\n\x0fSessionStrategy\x12 \n\x1cSESSION_STRATEGY_UNSPECIFIED\x10\x00\x12 \n\x1cSESSION_STRATEGY_MOST_RECENT\x10\x01*b\n\x13MonitorEnvStoreType\x12&\n\"MONITOR_ENV_STORE_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fMONITOR_ENV_STORE_TYPE_SNAPSHOT\x10\x01\x32\x90\x06\n\rRunnerService\x12`\n\rCreateSession\x12%.runme.runner.v2.CreateSessionRequest\x1a&.runme.runner.v2.CreateSessionResponse\"\x00\x12W\n\nGetSession\x12\".runme.runner.v2.GetSessionRequest\x1a#.runme.runner.v2.GetSessionResponse\"\x00\x12]\n\x0cListSessions\x12$.runme.runner.v2.ListSessionsRequest\x1a%.runme.runner.v2.ListSessionsResponse\"\x00\x12`\n\rUpdateSession\x12%.runme.runner.v2.UpdateSessionRequest\x1a&.runme.runner.v2.UpdateSessionResponse\"\x00\x12`\n\rDeleteSession\x12%.runme.runner.v2.DeleteSessionRequest\x1a&.runme.runner.v2.DeleteSessionResponse\"\x00\x12h\n\x0fMonitorEnvStore\x12\'.runme.runner.v2.MonitorEnvStoreRequest\x1a(.runme.runner.v2.MonitorEnvStoreResponse\"\x00\x30\x01\x12R\n\x07\x45xecute\x12\x1f.runme.runner.v2.ExecuteRequest\x1a .runme.runner.v2.ExecuteResponse\"\x00(\x01\x30\x01\x12\x63\n\x0eResolveProgram\x12&.runme.runner.v2.ResolveProgramRequest\x1a\'.runme.runner.v2.ResolveProgramResponse\"\x00\x42HZFgithub.com/runmedev/runme/v3/api/gen/proto/go/runme/runner/v2;runnerv2b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -40,14 +40,14 @@ _globals['_CREATESESSIONREQUEST_METADATAENTRY']._serialized_options = b'8\001' _globals['_UPDATESESSIONREQUEST_METADATAENTRY']._loaded_options = None _globals['_UPDATESESSIONREQUEST_METADATAENTRY']._serialized_options = b'8\001' - _globals['_SESSIONENVSTORETYPE']._serialized_start=4938 - _globals['_SESSIONENVSTORETYPE']._serialized_end=5031 - _globals['_EXECUTESTOP']._serialized_start=5033 - _globals['_EXECUTESTOP']._serialized_end=5127 - _globals['_SESSIONSTRATEGY']._serialized_start=5129 - _globals['_SESSIONSTRATEGY']._serialized_end=5214 - _globals['_MONITORENVSTORETYPE']._serialized_start=5216 - _globals['_MONITORENVSTORETYPE']._serialized_end=5314 + _globals['_SESSIONENVSTORETYPE']._serialized_start=5106 + _globals['_SESSIONENVSTORETYPE']._serialized_end=5199 + _globals['_EXECUTESTOP']._serialized_start=5201 + _globals['_EXECUTESTOP']._serialized_end=5295 + _globals['_SESSIONSTRATEGY']._serialized_start=5297 + _globals['_SESSIONSTRATEGY']._serialized_end=5382 + _globals['_MONITORENVSTORETYPE']._serialized_start=5384 + _globals['_MONITORENVSTORETYPE']._serialized_end=5482 _globals['_PROJECT']._serialized_start=111 _globals['_PROJECT']._serialized_end=178 _globals['_SESSION']._serialized_start=181 @@ -104,18 +104,20 @@ _globals['_RESOLVEPROGRAMRESPONSE_VARRESULT']._serialized_end=3800 _globals['_RESOLVEPROGRAMRESPONSE_STATUS']._serialized_start=3803 _globals['_RESOLVEPROGRAMRESPONSE_STATUS']._serialized_end=3967 - _globals['_MONITORENVSTOREREQUEST']._serialized_start=3969 - _globals['_MONITORENVSTOREREQUEST']._serialized_end=4045 - _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_start=4048 - _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_end=4762 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_start=4166 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_end=4615 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_start=4617 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_end=4670 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_start=4672 - _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_end=4762 - _globals['_MONITORENVSTORERESPONSE']._serialized_start=4765 - _globals['_MONITORENVSTORERESPONSE']._serialized_end=4936 - _globals['_RUNNERSERVICE']._serialized_start=5317 - _globals['_RUNNERSERVICE']._serialized_end=6101 + _globals['_MONITORENVSTOREREQUEST']._serialized_start=3970 + _globals['_MONITORENVSTOREREQUEST']._serialized_end=4213 + _globals['_MONITORENVSTOREREQUEST_SNAPSHOTPOLICY']._serialized_start=4145 + _globals['_MONITORENVSTOREREQUEST_SNAPSHOTPOLICY']._serialized_end=4213 + _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_start=4216 + _globals['_MONITORENVSTORERESPONSESNAPSHOT']._serialized_end=4930 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_start=4334 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_SNAPSHOTENV']._serialized_end=4783 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_start=4785 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_ERROR']._serialized_end=4838 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_start=4840 + _globals['_MONITORENVSTORERESPONSESNAPSHOT_STATUS']._serialized_end=4930 + _globals['_MONITORENVSTORERESPONSE']._serialized_start=4933 + _globals['_MONITORENVSTORERESPONSE']._serialized_end=5104 + _globals['_RUNNERSERVICE']._serialized_start=5485 + _globals['_RUNNERSERVICE']._serialized_end=6269 # @@protoc_insertion_point(module_scope) diff --git a/api/gen/proto/python/runme/runner/v2/runner_pb2.pyi b/api/gen/proto/python/runme/runner/v2/runner_pb2.pyi index 1f5d9a5e7..9e3b242b6 100644 --- a/api/gen/proto/python/runme/runner/v2/runner_pb2.pyi +++ b/api/gen/proto/python/runme/runner/v2/runner_pb2.pyi @@ -294,10 +294,19 @@ class ResolveProgramResponse(_message.Message): def __init__(self, script: _Optional[str] = ..., commands: _Optional[_Union[ResolveProgramCommandList, _Mapping]] = ..., vars: _Optional[_Iterable[_Union[ResolveProgramResponse.VarResult, _Mapping]]] = ...) -> None: ... class MonitorEnvStoreRequest(_message.Message): - __slots__ = ("session",) + __slots__ = ("session", "snapshot_policy") + class SnapshotPolicy(_message.Message): + __slots__ = ("reveal", "insecure") + REVEAL_FIELD_NUMBER: _ClassVar[int] + INSECURE_FIELD_NUMBER: _ClassVar[int] + reveal: bool + insecure: bool + def __init__(self, reveal: _Optional[bool] = ..., insecure: _Optional[bool] = ...) -> None: ... SESSION_FIELD_NUMBER: _ClassVar[int] + SNAPSHOT_POLICY_FIELD_NUMBER: _ClassVar[int] session: Session - def __init__(self, session: _Optional[_Union[Session, _Mapping]] = ...) -> None: ... + snapshot_policy: MonitorEnvStoreRequest.SnapshotPolicy + def __init__(self, session: _Optional[_Union[Session, _Mapping]] = ..., snapshot_policy: _Optional[_Union[MonitorEnvStoreRequest.SnapshotPolicy, _Mapping]] = ...) -> None: ... class MonitorEnvStoreResponseSnapshot(_message.Message): __slots__ = ("envs",) diff --git a/api/gen/proto/ts/runme/runner/v1/runner_pb.d.ts b/api/gen/proto/ts/runme/runner/v1/runner_pb.d.ts index f6ea259cc..bb9c404bc 100644 --- a/api/gen/proto/ts/runme/runner/v1/runner_pb.d.ts +++ b/api/gen/proto/ts/runme/runner/v1/runner_pb.d.ts @@ -639,6 +639,23 @@ export interface MonitorEnvStoreRequest { * @generated from protobuf field: runme.runner.v1.Session session = 1 */ session?: Session; + /** + * @generated from protobuf field: runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2 + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicy; +} +/** + * @generated from protobuf message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + */ +export interface MonitorEnvStoreRequest_SnapshotPolicy { + /** + * @generated from protobuf field: bool reveal = 1 + */ + reveal: boolean; + /** + * @generated from protobuf field: bool insecure = 2 + */ + insecure: boolean; } /** * @generated from protobuf message runme.runner.v1.MonitorEnvStoreResponseSnapshot @@ -1043,6 +1060,16 @@ declare class MonitorEnvStoreRequest$Type extends MessageType { + constructor(); + create(value?: PartialMessage): MonitorEnvStoreRequest_SnapshotPolicy; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MonitorEnvStoreRequest_SnapshotPolicy): MonitorEnvStoreRequest_SnapshotPolicy; + internalBinaryWrite(message: MonitorEnvStoreRequest_SnapshotPolicy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated MessageType for protobuf message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare const MonitorEnvStoreRequest_SnapshotPolicy: MonitorEnvStoreRequest_SnapshotPolicy$Type; declare class MonitorEnvStoreResponseSnapshot$Type extends MessageType { constructor(); create(value?: PartialMessage): MonitorEnvStoreResponseSnapshot; diff --git a/api/gen/proto/ts/runme/runner/v1/runner_pb.js b/api/gen/proto/ts/runme/runner/v1/runner_pb.js index cd20eade1..bc806fed5 100644 --- a/api/gen/proto/ts/runme/runner/v1/runner_pb.js +++ b/api/gen/proto/ts/runme/runner/v1/runner_pb.js @@ -1493,7 +1493,8 @@ export const ResolveProgramResponse_VarResult = new ResolveProgramResponse_VarRe class MonitorEnvStoreRequest$Type extends MessageType { constructor() { super("runme.runner.v1.MonitorEnvStoreRequest", [ - { no: 1, name: "session", kind: "message", T: () => Session } + { no: 1, name: "session", kind: "message", T: () => Session }, + { no: 2, name: "snapshot_policy", kind: "message", T: () => MonitorEnvStoreRequest_SnapshotPolicy } ]); } create(value) { @@ -1510,6 +1511,9 @@ class MonitorEnvStoreRequest$Type extends MessageType { case /* runme.runner.v1.Session session */ 1: message.session = Session.internalBinaryRead(reader, reader.uint32(), options, message.session); break; + case /* runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy */ 2: + message.snapshotPolicy = MonitorEnvStoreRequest_SnapshotPolicy.internalBinaryRead(reader, reader.uint32(), options, message.snapshotPolicy); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -1525,6 +1529,9 @@ class MonitorEnvStoreRequest$Type extends MessageType { /* runme.runner.v1.Session session = 1; */ if (message.session) Session.internalBinaryWrite(message.session, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; */ + if (message.snapshotPolicy) + MonitorEnvStoreRequest_SnapshotPolicy.internalBinaryWrite(message.snapshotPolicy, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -1536,6 +1543,61 @@ class MonitorEnvStoreRequest$Type extends MessageType { */ export const MonitorEnvStoreRequest = new MonitorEnvStoreRequest$Type(); // @generated message type with reflection information, may provide speed optimized methods +class MonitorEnvStoreRequest_SnapshotPolicy$Type extends MessageType { + constructor() { + super("runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy", [ + { no: 1, name: "reveal", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, + { no: 2, name: "insecure", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } + ]); + } + create(value) { + const message = globalThis.Object.create((this.messagePrototype)); + message.reveal = false; + message.insecure = false; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader, length, options, target) { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* bool reveal */ 1: + message.reveal = reader.bool(); + break; + case /* bool insecure */ 2: + message.insecure = reader.bool(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message, writer, options) { + /* bool reveal = 1; */ + if (message.reveal !== false) + writer.tag(1, WireType.Varint).bool(message.reveal); + /* bool insecure = 2; */ + if (message.insecure !== false) + writer.tag(2, WireType.Varint).bool(message.insecure); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message runme.runner.v1.MonitorEnvStoreRequest.SnapshotPolicy + */ +export const MonitorEnvStoreRequest_SnapshotPolicy = new MonitorEnvStoreRequest_SnapshotPolicy$Type(); +// @generated message type with reflection information, may provide speed optimized methods class MonitorEnvStoreResponseSnapshot$Type extends MessageType { constructor() { super("runme.runner.v1.MonitorEnvStoreResponseSnapshot", [ diff --git a/api/gen/proto/ts/runme/runner/v2/runner_pb.d.ts b/api/gen/proto/ts/runme/runner/v2/runner_pb.d.ts index 79e97708d..43088cdea 100644 --- a/api/gen/proto/ts/runme/runner/v2/runner_pb.d.ts +++ b/api/gen/proto/ts/runme/runner/v2/runner_pb.d.ts @@ -597,6 +597,23 @@ export interface MonitorEnvStoreRequest { * @generated from protobuf field: runme.runner.v2.Session session = 1 */ session?: Session; + /** + * @generated from protobuf field: runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2 + */ + snapshotPolicy?: MonitorEnvStoreRequest_SnapshotPolicy; +} +/** + * @generated from protobuf message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + */ +export interface MonitorEnvStoreRequest_SnapshotPolicy { + /** + * @generated from protobuf field: bool reveal = 1 + */ + reveal: boolean; + /** + * @generated from protobuf field: bool insecure = 2 + */ + insecure: boolean; } /** * @generated from protobuf message runme.runner.v2.MonitorEnvStoreResponseSnapshot @@ -1008,6 +1025,16 @@ declare class MonitorEnvStoreRequest$Type extends MessageType { + constructor(); + create(value?: PartialMessage): MonitorEnvStoreRequest_SnapshotPolicy; + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MonitorEnvStoreRequest_SnapshotPolicy): MonitorEnvStoreRequest_SnapshotPolicy; + internalBinaryWrite(message: MonitorEnvStoreRequest_SnapshotPolicy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; +} +/** + * @generated MessageType for protobuf message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + */ +export declare const MonitorEnvStoreRequest_SnapshotPolicy: MonitorEnvStoreRequest_SnapshotPolicy$Type; declare class MonitorEnvStoreResponseSnapshot$Type extends MessageType { constructor(); create(value?: PartialMessage): MonitorEnvStoreResponseSnapshot; diff --git a/api/gen/proto/ts/runme/runner/v2/runner_pb.js b/api/gen/proto/ts/runme/runner/v2/runner_pb.js index 72d93df53..f260a4b37 100644 --- a/api/gen/proto/ts/runme/runner/v2/runner_pb.js +++ b/api/gen/proto/ts/runme/runner/v2/runner_pb.js @@ -1550,7 +1550,8 @@ export const ResolveProgramResponse_VarResult = new ResolveProgramResponse_VarRe class MonitorEnvStoreRequest$Type extends MessageType { constructor() { super("runme.runner.v2.MonitorEnvStoreRequest", [ - { no: 1, name: "session", kind: "message", T: () => Session } + { no: 1, name: "session", kind: "message", T: () => Session }, + { no: 2, name: "snapshot_policy", kind: "message", T: () => MonitorEnvStoreRequest_SnapshotPolicy } ]); } create(value) { @@ -1567,6 +1568,9 @@ class MonitorEnvStoreRequest$Type extends MessageType { case /* runme.runner.v2.Session session */ 1: message.session = Session.internalBinaryRead(reader, reader.uint32(), options, message.session); break; + case /* runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy */ 2: + message.snapshotPolicy = MonitorEnvStoreRequest_SnapshotPolicy.internalBinaryRead(reader, reader.uint32(), options, message.snapshotPolicy); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -1582,6 +1586,9 @@ class MonitorEnvStoreRequest$Type extends MessageType { /* runme.runner.v2.Session session = 1; */ if (message.session) Session.internalBinaryWrite(message.session, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy snapshot_policy = 2; */ + if (message.snapshotPolicy) + MonitorEnvStoreRequest_SnapshotPolicy.internalBinaryWrite(message.snapshotPolicy, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -1593,6 +1600,61 @@ class MonitorEnvStoreRequest$Type extends MessageType { */ export const MonitorEnvStoreRequest = new MonitorEnvStoreRequest$Type(); // @generated message type with reflection information, may provide speed optimized methods +class MonitorEnvStoreRequest_SnapshotPolicy$Type extends MessageType { + constructor() { + super("runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy", [ + { no: 1, name: "reveal", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, + { no: 2, name: "insecure", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } + ]); + } + create(value) { + const message = globalThis.Object.create((this.messagePrototype)); + message.reveal = false; + message.insecure = false; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader, length, options, target) { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* bool reveal */ 1: + message.reveal = reader.bool(); + break; + case /* bool insecure */ 2: + message.insecure = reader.bool(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message, writer, options) { + /* bool reveal = 1; */ + if (message.reveal !== false) + writer.tag(1, WireType.Varint).bool(message.reveal); + /* bool insecure = 2; */ + if (message.insecure !== false) + writer.tag(2, WireType.Varint).bool(message.insecure); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message runme.runner.v2.MonitorEnvStoreRequest.SnapshotPolicy + */ +export const MonitorEnvStoreRequest_SnapshotPolicy = new MonitorEnvStoreRequest_SnapshotPolicy$Type(); +// @generated message type with reflection information, may provide speed optimized methods class MonitorEnvStoreResponseSnapshot$Type extends MessageType { constructor() { super("runme.runner.v2.MonitorEnvStoreResponseSnapshot", [ diff --git a/api/proto/runme/runner/v1/runner.proto b/api/proto/runme/runner/v1/runner.proto index dd52deb9d..10f24f63e 100644 --- a/api/proto/runme/runner/v1/runner.proto +++ b/api/proto/runme/runner/v1/runner.proto @@ -353,6 +353,13 @@ enum MonitorEnvStoreType { message MonitorEnvStoreRequest { Session session = 1; + + SnapshotPolicy snapshot_policy = 2; + + message SnapshotPolicy { + bool reveal = 1; + bool insecure = 2; + } } message MonitorEnvStoreResponseSnapshot { diff --git a/api/proto/runme/runner/v2/runner.proto b/api/proto/runme/runner/v2/runner.proto index 1eedd4da8..81e698a64 100644 --- a/api/proto/runme/runner/v2/runner.proto +++ b/api/proto/runme/runner/v2/runner.proto @@ -321,6 +321,13 @@ enum MonitorEnvStoreType { message MonitorEnvStoreRequest { Session session = 1; + + SnapshotPolicy snapshot_policy = 2; + + message SnapshotPolicy { + bool reveal = 1; + bool insecure = 2; + } } message MonitorEnvStoreResponseSnapshot { diff --git a/cmd/environment.go b/cmd/environment.go index 2604bb7dc..479db8c4a 100644 --- a/cmd/environment.go +++ b/cmd/environment.go @@ -50,7 +50,7 @@ func storeCmd() *cobra.Command { cmd := owlcmd.NewStoreCommand(owlcmd.StoreCommandOptions{ Hidden: true, - InsecureAllowed: func() bool { + InsecureModeEnabled: func() bool { return fInsecure }, ClientFactory: func(cmd *cobra.Command) (owlcmd.StoreClient, error) { diff --git a/cmd/environment_store.go b/cmd/environment_store.go index 7a294d324..1739d0f9a 100644 --- a/cmd/environment_store.go +++ b/cmd/environment_store.go @@ -28,7 +28,7 @@ type runmeOwlStoreClient struct { stderr io.Writer } -func (c *runmeOwlStoreClient) Snapshot(ctx context.Context, _ owlcmd.SnapshotRequest) (*owlcmd.SnapshotResult, error) { +func (c *runmeOwlStoreClient) Snapshot(ctx context.Context, snapshotReq owlcmd.SnapshotRequest) (*owlcmd.SnapshotResult, error) { runnerClient, closeConn, err := c.runnerClient() if err != nil { return nil, err @@ -42,6 +42,10 @@ func (c *runmeOwlStoreClient) Snapshot(ctx context.Context, _ owlcmd.SnapshotReq req := &runnerv1.MonitorEnvStoreRequest{ Session: &runnerv1.Session{Id: sessionID}, + SnapshotPolicy: &runnerv1.MonitorEnvStoreRequest_SnapshotPolicy{ + Reveal: snapshotReq.Reveal, + Insecure: snapshotReq.Insecure, + }, } meClient, err := runnerClient.MonitorEnvStore(ctx, req) if err != nil { diff --git a/go.mod b/go.mod index 2b252085d..6c69c4691 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/redpanda-data/protoc-gen-go-mcp v0.0.0-20260709214304-372b2d56e470 github.com/rogpeppe/go-internal v1.15.0 github.com/rs/cors v1.11.1 - github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152 + github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de github.com/spf13/viper v1.21.0 github.com/stateful/godotenv v0.0.0-20240309032207-c7bc0b812915 github.com/vektah/gqlparser/v2 v2.5.36 diff --git a/go.sum b/go.sum index 14b1c304d..9607219d6 100644 --- a/go.sum +++ b/go.sum @@ -413,8 +413,8 @@ github.com/rogpeppe/go-internal v1.15.0 h1:D0RCU5rMAp+SpgkiNdrjfJ+LX4J1M32V2NeCY github.com/rogpeppe/go-internal v1.15.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152 h1:fh4I1tfkb7WFiipzzXq6XyGYNEXQ5iMzgqhVYoXOYXY= -github.com/runmedev/owl v1.0.2-0.20260731000518-fb44c5cba152/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= +github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de h1:XXdcMVk00L+jLQk8ZPaNVqx+MABXivcYa/uZxeRmthM= +github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI= diff --git a/runner/service.go b/runner/service.go index 02c1243c9..a13ac79e2 100644 --- a/runner/service.go +++ b/runner/service.go @@ -890,7 +890,7 @@ func (r *runnerService) MonitorEnvStore(req *runnerv1.MonitorEnvStoreRequest, sr wg.Add(1) go func() { defer wg.Done() - if err := sess.Subscribe(ctx, snapshotc); err != nil { + if err := sess.SubscribeWithPolicy(ctx, snapshotc, snapshotPolicyFromMonitorEnvStoreRequest(req)); err != nil { errc <- err } }() @@ -901,6 +901,16 @@ func (r *runnerService) MonitorEnvStore(req *runnerv1.MonitorEnvStoreRequest, sr return err } +func snapshotPolicyFromMonitorEnvStoreRequest(req *runnerv1.MonitorEnvStoreRequest) owl.SnapshotPolicy { + policy := req.GetSnapshotPolicy() + if policy == nil { + return owl.SnapshotPolicy{} + } + return owl.SnapshotPolicy{ + Reveal: policy.GetReveal() && policy.GetInsecure(), + } +} + func convertToMonitorEnvStoreResponse(logger *zap.Logger, msg *runnerv1.MonitorEnvStoreResponse, snapshot []owl.SnapshotItem) error { envsSnapshot := make([]*runnerv1.MonitorEnvStoreResponseSnapshot_SnapshotEnv, 0, len(snapshot)) if logger == nil { diff --git a/runner/service_test.go b/runner/service_test.go index a6dd20d38..f408bf2bf 100644 --- a/runner/service_test.go +++ b/runner/service_test.go @@ -1313,6 +1313,29 @@ func Test_convertToMonitorEnvStoreResponse_warnsOnMissingUpdateTime(t *testing.T assert.Equal(t, "test", logs[0].ContextMap()["origin"]) } +func Test_snapshotPolicyFromMonitorEnvStoreRequest(t *testing.T) { + t.Parallel() + + assert.Equal(t, owl.SnapshotPolicy{}, snapshotPolicyFromMonitorEnvStoreRequest(&runnerv1.MonitorEnvStoreRequest{})) + assert.Equal(t, + owl.SnapshotPolicy{}, + snapshotPolicyFromMonitorEnvStoreRequest(&runnerv1.MonitorEnvStoreRequest{ + SnapshotPolicy: &runnerv1.MonitorEnvStoreRequest_SnapshotPolicy{ + Reveal: true, + }, + }), + ) + assert.Equal(t, + owl.SnapshotPolicy{Reveal: true}, + snapshotPolicyFromMonitorEnvStoreRequest(&runnerv1.MonitorEnvStoreRequest{ + SnapshotPolicy: &runnerv1.MonitorEnvStoreRequest_SnapshotPolicy{ + Reveal: true, + Insecure: true, + }, + }), + ) +} + func Test_convertToMonitorEnvStoreResponse_projectsOwlSnapshotContract(t *testing.T) { updatedAt := time.Date(2026, 7, 24, 19, 45, 0, 0, time.UTC) snapshot := []owl.SnapshotItem{ diff --git a/runner/session.go b/runner/session.go index 13b010819..18e458138 100644 --- a/runner/session.go +++ b/runner/session.go @@ -25,7 +25,7 @@ type envStorer interface { updateStore(context context.Context, envs []string, newOrUpdated []string, deleted []string) error setEnv(context context.Context, k string, v string) error // Set sensitiveEnvKeys() ([]string, error) - subscribe(ctx context.Context, snapshotc chan<- []owl.SnapshotItem) error + subscribe(ctx context.Context, snapshotc chan<- []owl.SnapshotItem, policy owl.SnapshotPolicy) error complete() } @@ -111,7 +111,11 @@ func (s *Session) Envs() ([]string, error) { } func (s *Session) Subscribe(ctx context.Context, snapshotc chan<- []owl.SnapshotItem) error { - return s.envStorer.subscribe(ctx, snapshotc) + return s.SubscribeWithPolicy(ctx, snapshotc, owl.SnapshotPolicy{}) +} + +func (s *Session) SubscribeWithPolicy(ctx context.Context, snapshotc chan<- []owl.SnapshotItem, policy owl.SnapshotPolicy) error { + return s.envStorer.subscribe(ctx, snapshotc, policy) } func (s *Session) Complete() { @@ -129,7 +133,7 @@ func newRunnerStorer(sessionEnvs ...string) *runnerEnvStorer { } } -func (es *runnerEnvStorer) subscribe(_ context.Context, snapshotc chan<- []owl.SnapshotItem) error { +func (es *runnerEnvStorer) subscribe(_ context.Context, snapshotc chan<- []owl.SnapshotItem, _ owl.SnapshotPolicy) error { defer close(snapshotc) return fmt.Errorf("not available for runner env store") } @@ -170,7 +174,10 @@ func (es *runnerEnvStorer) updateStore(_ context.Context, envs []string, newOrUp return nil } -type owlEnvStorerSubscriber chan<- []owl.SnapshotItem +type owlEnvStorerSubscriber struct { + snapshotc chan<- []owl.SnapshotItem + policy owl.SnapshotPolicy +} type owlEnvStorer struct { logger *zap.Logger @@ -233,12 +240,15 @@ func newOwlStorer(envs []string, proj *project.Project, logger *zap.Logger) (*ow }, nil } -func (es *owlEnvStorer) subscribe(context context.Context, snapshotc chan<- []owl.SnapshotItem) error { +func (es *owlEnvStorer) subscribe(context context.Context, snapshotc chan<- []owl.SnapshotItem, policy owl.SnapshotPolicy) error { defer es.mu.Unlock() es.mu.Lock() es.logger.Debug("subscribed to owl store") - es.subscribers = append(es.subscribers, snapshotc) + es.subscribers = append(es.subscribers, owlEnvStorerSubscriber{ + snapshotc: snapshotc, + policy: policy, + }) go func() { <-context.Done() @@ -261,7 +271,7 @@ func (es *owlEnvStorer) complete() { es.mu.Lock() for _, sub := range es.subscribers { - err := es.unsubscribeUnsafe(sub) + err := es.unsubscribeUnsafe(sub.snapshotc) if err != nil { es.logger.Error("unsubscribe from owl store failed", zap.Error(err)) } @@ -279,9 +289,9 @@ func (es *owlEnvStorer) unsubscribeUnsafe(snapshotc chan<- []owl.SnapshotItem) e es.logger.Debug("unsubscribed from owl store") for i, sub := range es.subscribers { - if sub == snapshotc { + if sub.snapshotc == snapshotc { es.subscribers = append(es.subscribers[:i], es.subscribers[i+1:]...) - close(sub) + close(sub.snapshotc) return nil } } @@ -293,14 +303,13 @@ func (es *owlEnvStorer) notifySubscribers() { defer es.mu.RUnlock() es.mu.RLock() - snapshot, err := es.owlStore.Snapshot(owl.SnapshotPolicy{}) - if err != nil { - es.logger.Error("failed to get snapshot", zap.Error(err)) - return - } - for _, sub := range es.subscribers { - sub <- snapshot + snapshot, err := es.owlStore.Snapshot(sub.policy) + if err != nil { + es.logger.Error("failed to get snapshot", zap.Error(err)) + continue + } + sub.snapshotc <- snapshot } } diff --git a/runner/session_test.go b/runner/session_test.go index c08631291..28d25f912 100644 --- a/runner/session_test.go +++ b/runner/session_test.go @@ -162,6 +162,30 @@ func TestOwlSessionTreatsEmptySensitiveEnvAsMasked(t *testing.T) { assert.Equal(t, "[process]", byName["RUNME_TEST_TOKEN"].Source.Name) } +func TestOwlSessionRevealsSnapshotWithInsecurePolicy(t *testing.T) { + t.Parallel() + + dir := t.TempDir() + proj, err := project.NewDirProject(dir) + require.NoError(t, err) + + sess, err := NewSessionWithStore([]string{"TERMINFO=/tmp/terminfo"}, proj, true, zap.NewNop()) + require.NoError(t, err) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + snapshotc := make(chan []owl.SnapshotItem) + require.NoError(t, sess.SubscribeWithPolicy(ctx, snapshotc, owl.SnapshotPolicy{Reveal: true})) + + snapshot := <-snapshotc + byName := snapshotItemsByName(snapshot) + require.Contains(t, byName, "TERMINFO") + + assert.Equal(t, "/tmp/terminfo", byName["TERMINFO"].Value) + assert.Equal(t, owl.VisibilityLiteral, byName["TERMINFO"].Visibility) + assert.Equal(t, "[process]", byName["TERMINFO"].Source.Name) +} + func snapshotItemsByName(items []owl.SnapshotItem) map[string]owl.SnapshotItem { result := make(map[string]owl.SnapshotItem, len(items)) for _, item := range items { From f019a2339be87ff09bc662c43590df54c631955f Mon Sep 17 00:00:00 2001 From: "Sebastian (Tiedtke) Huckleberry" Date: Thu, 30 Jul 2026 22:04:48 -0700 Subject: [PATCH 4/4] chore: bump owl to latest main Signed-off-by: Sebastian (Tiedtke) Huckleberry --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6c69c4691..3a536406b 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/redpanda-data/protoc-gen-go-mcp v0.0.0-20260709214304-372b2d56e470 github.com/rogpeppe/go-internal v1.15.0 github.com/rs/cors v1.11.1 - github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de + github.com/runmedev/owl v1.0.2-0.20260731050242-dc8e804fafc4 github.com/spf13/viper v1.21.0 github.com/stateful/godotenv v0.0.0-20240309032207-c7bc0b812915 github.com/vektah/gqlparser/v2 v2.5.36 diff --git a/go.sum b/go.sum index 9607219d6..3d4892edb 100644 --- a/go.sum +++ b/go.sum @@ -413,8 +413,8 @@ github.com/rogpeppe/go-internal v1.15.0 h1:D0RCU5rMAp+SpgkiNdrjfJ+LX4J1M32V2NeCY github.com/rogpeppe/go-internal v1.15.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de h1:XXdcMVk00L+jLQk8ZPaNVqx+MABXivcYa/uZxeRmthM= -github.com/runmedev/owl v1.0.2-0.20260731004359-24698d6c07de/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= +github.com/runmedev/owl v1.0.2-0.20260731050242-dc8e804fafc4 h1:/fBCxqqRZndOSyihGABGDh5XrWn4Hhn92sg+nXzQ/R8= +github.com/runmedev/owl v1.0.2-0.20260731050242-dc8e804fafc4/go.mod h1:/QP9vSsqqcREuqy0kRzRdBE2SCgN/OYkcEOgGV4jFWw= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4= github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI=