From 4db718660aead8f5a0be356f4ffd18c1cd4c5089 Mon Sep 17 00:00:00 2001 From: Jonas Plum Date: Sun, 21 Jul 2024 09:24:06 +0200 Subject: [PATCH] feat: provide app url (#1087) --- app/app.go | 1 + app/flags.go | 26 ++++++++++++++++++++++++++ fakedata/records.go | 4 ++-- reaction/action/action.go | 7 +++++-- reaction/action/python/python.go | 11 ++++------- 5 files changed, 38 insertions(+), 11 deletions(-) diff --git a/app/app.go b/app/app.go index a52cd09..51b11be 100644 --- a/app/app.go +++ b/app/app.go @@ -39,6 +39,7 @@ func App(dir string, test bool) (*pocketbase.PocketBase, error) { // Register additional commands app.RootCmd.AddCommand(fakeDataCmd(app)) app.RootCmd.AddCommand(setFeatureFlagsCmd(app)) + app.RootCmd.AddCommand(setAppURL(app)) if err := app.Bootstrap(); err != nil { return nil, err diff --git a/app/flags.go b/app/flags.go index 5fc11d1..36adf39 100644 --- a/app/flags.go +++ b/app/flags.go @@ -96,3 +96,29 @@ func setFeatureFlagsCmd(app core.App) *cobra.Command { }, } } + +func setAppURL(app core.App) *cobra.Command { + return &cobra.Command{ + Use: "set-app-url", + Run: func(_ *cobra.Command, args []string) { + if len(args) != 1 { + app.Logger().Error("missing app url") + + return + } + + settings, err := app.Settings().Clone() + if err != nil { + app.Logger().Error(err.Error()) + + return + } + + settings.Meta.AppUrl = args[0] + + if err := app.Dao().SaveSettings(settings); err != nil { + app.Logger().Error(err.Error()) + } + }, + } +} diff --git a/fakedata/records.go b/fakedata/records.go index 827072c..1b9489a 100644 --- a/fakedata/records.go +++ b/fakedata/records.go @@ -260,7 +260,7 @@ event = json.loads(sys.argv[1]) body = json.loads(event["body"]) # Connect to the PocketBase server -client = PocketBase('http://127.0.0.1:8090') +client = PocketBase(os.environ["CATALYST_APP_URL"]) client.auth_store.save(token=os.environ["CATALYST_TOKEN"]) # Create a new ticket @@ -281,7 +281,7 @@ from pocketbase import PocketBase ticket = json.loads(sys.argv[1]) # Connect to the PocketBase server -client = PocketBase('http://127.0.0.1:8090') +client = PocketBase(os.environ["CATALYST_APP_URL"]) client.auth_store.save(token=os.environ["CATALYST_TOKEN"]) # Get a random user diff --git a/reaction/action/action.go b/reaction/action/action.go index 6539305..cac9430 100644 --- a/reaction/action/action.go +++ b/reaction/action/action.go @@ -28,7 +28,10 @@ func Run(ctx context.Context, app core.App, actionName, actionData, payload stri return nil, fmt.Errorf("failed to get system token: %w", err) } - a.SetToken(token) + a.SetEnv([]string{ + "CATALYST_APP_URL=" + app.Settings().Meta.AppUrl, + "CATALYST_TOKEN=" + token, + }) } return action.Run(ctx, payload) @@ -39,7 +42,7 @@ type action interface { } type authenticatedAction interface { - SetToken(token string) + SetEnv(env []string) } func decode(actionName, actionData string) (action, error) { diff --git a/reaction/action/python/python.go b/reaction/action/python/python.go index b059568..d213bd2 100644 --- a/reaction/action/python/python.go +++ b/reaction/action/python/python.go @@ -13,11 +13,11 @@ type Python struct { Requirements string `json:"requirements"` Script string `json:"script"` - token string + env []string } -func (a *Python) SetToken(token string) { - a.token = token +func (a *Python) SetEnv(env []string) { + a.env = env } func (a *Python) Run(ctx context.Context, payload string) ([]byte, error) { @@ -101,10 +101,7 @@ func (a *Python) pythonRunScript(ctx context.Context, tempDir, payload string) ( cmd := exec.CommandContext(ctx, pythonPath, scriptPath, payload) - cmd.Env = []string{} - if a.token != "" { - cmd.Env = append(cmd.Env, "CATALYST_TOKEN="+a.token) - } + cmd.Env = a.env return cmd.Output() }