Skip to content

Commit

Permalink
Add CODE_SNIPPET_USE_AUTO_CONFIG environment variable
Browse files Browse the repository at this point in the history
Signed-off-by: ddl-rliu <richard.liu@dominodatalab.com>
  • Loading branch information
ddl-rliu committed Jul 22, 2024
1 parent 7636e32 commit f18322e
Show file tree
Hide file tree
Showing 5 changed files with 255 additions and 11 deletions.
105 changes: 105 additions & 0 deletions 0001-Add-CODE_SNIPPET_URL-to-config.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
From c08ffc01813efe56e4fe1b9225569d8e15a4a7e4 Mon Sep 17 00:00:00 2001
From: ddl-rliu <richard.liu@dominodatalab.com>
Date: Wed, 17 Jul 2024 12:28:02 -0700
Subject: [PATCH] Add CODE_SNIPPET_URL to config

Signed-off-by: ddl-rliu <richard.liu@dominodatalab.com>
---
packages/common/src/environment/index.ts | 6 +++++
.../ExecutionDetails/ExecutionNodeURL.tsx | 22 +++++++++----------
website/console/env/index.ts | 7 ++++++
3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/packages/common/src/environment/index.ts b/packages/common/src/environment/index.ts
index 82e275c..78ccdd3 100644
--- a/packages/common/src/environment/index.ts
+++ b/packages/common/src/environment/index.ts
@@ -33,6 +33,12 @@ export interface Env extends NodeJS.ProcessEnv {
* @example MAINTENANCE_MODE="We are currently down for maintenance.\n\nPlease try again later."
*/
MAINTENANCE_MODE?: string;
+
+ /**
+ * Controls whether the config object in the inputs/outputs Python code snippet is automatically constructed
+ * Leave unset to use the config object for endpoint window.location.host
+ */
+ CODE_SNIPPET_USE_AUTO_CONFIG?: string;
}

/** Represents a plain object where string keys map to values of the same type */
diff --git a/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx b/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
index 8cda4de..42d2c2a 100644
--- a/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
+++ b/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
@@ -11,6 +11,7 @@ import Grid from '@mui/material/Grid';
import Link from '@mui/material/Link';
import { RowExpander } from '../Tables/RowExpander';
import { ScrollableMonospaceText } from '../../common/ScrollableMonospaceText';
+import { env } from '@clients/common/environment';

const StyledScrollableMonospaceText = styled(ScrollableMonospaceText)(({ theme }) => ({
'&>div': {
@@ -31,19 +32,18 @@ export const ExecutionNodeURL: React.FC<{
const isHttps = /^https:/.test(window.location.href);
const ref = React.useRef<HTMLDivElement>(null);

- const code = isHttps
- ? // https snippet
- `from flytekit.remote.remote import FlyteRemote
+ const config =
+ env.CODE_SNIPPET_USE_AUTO_CONFIG
+ ? 'Config.auto()'
+ : isHttps
+ ? // https snippet
+ `Config.for_endpoint("${window.location.host}")`
+ : // http snippet
+ `Config.for_endpoint("${window.location.host}", True)`;
+ const code = `from flytekit.remote.remote import FlyteRemote
from flytekit.configuration import Config
remote = FlyteRemote(
- Config.for_endpoint("${window.location.host}"),
-)
-remote.get("${dataSourceURI}")`
- : // http snippet
- `from flytekit.remote.remote import FlyteRemote
-from flytekit.configuration import Config
-remote = FlyteRemote(
- Config.for_endpoint("${window.location.host}", True),
+ ${config},
)
remote.get("${dataSourceURI}")`;

diff --git a/website/console/env/index.ts b/website/console/env/index.ts
index 4114cb9..16772c2 100644
--- a/website/console/env/index.ts
+++ b/website/console/env/index.ts
@@ -77,6 +77,11 @@ const ASSETS_PATH = `${BASE_URL}/assets/`;
*/
const MAINTENANCE_MODE = process.env.MAINTENANCE_MODE || '';

+/**
+ * Controls whether the config object in the inputs/outputs Python code snippet is automatically constructed
+ */
+const CODE_SNIPPET_USE_AUTO_CONFIG = process.env.CODE_SNIPPET_USE_AUTO_CONFIG || '';
+
const processEnv = {
NODE_ENV,
PORT,
@@ -86,6 +91,7 @@ const processEnv = {
BASE_HREF,
DISABLE_CONSOLE_ROUTE_PREFIX,
MAINTENANCE_MODE,
+ CODE_SNIPPET_USE_AUTO_CONFIG,
};

export {
@@ -101,5 +107,6 @@ export {
ADMIN_API,
LOCAL_DEV_HOST,
MAINTENANCE_MODE,
+ CODE_SNIPPET_USE_AUTO_CONFIG,
processEnv,
};
--
2.44.0

126 changes: 126 additions & 0 deletions 0001-x.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
From 0dfb087b2ef56aef023d56c99baa625ab7d4ba9b Mon Sep 17 00:00:00 2001
From: ddl-rliu <richard.liu@dominodatalab.com>
Date: Wed, 17 Jul 2024 12:28:02 -0700
Subject: [PATCH] x

---
packages/common/src/environment/index.ts | 5 +++++
.../Executions/ExecutionDetails/ExecutionNodeURL.tsx | 8 +++++---
packages/primitives/src/utils/environment.ts | 2 ++
website/console/env/index.ts | 10 ++++++++++
4 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/packages/common/src/environment/index.ts b/packages/common/src/environment/index.ts
index 82e275c..2f6b4d4 100644
--- a/packages/common/src/environment/index.ts
+++ b/packages/common/src/environment/index.ts
@@ -33,6 +33,11 @@ export interface Env extends NodeJS.ProcessEnv {
* @example MAINTENANCE_MODE="We are currently down for maintenance.\n\nPlease try again later."
*/
MAINTENANCE_MODE?: string;
+
+ /**
+ * Controls the endpoint used in Python code snippet
+ */
+ CODE_SNIPPET_URL?: string;
}

/** Represents a plain object where string keys map to values of the same type */
diff --git a/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx b/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
index 8cda4de..9bbb89d 100644
--- a/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
+++ b/packages/oss-console/src/components/Executions/ExecutionDetails/ExecutionNodeURL.tsx
@@ -11,6 +11,7 @@ import Grid from '@mui/material/Grid';
import Link from '@mui/material/Link';
import { RowExpander } from '../Tables/RowExpander';
import { ScrollableMonospaceText } from '../../common/ScrollableMonospaceText';
+import { env } from '@clients/common/environment';

const StyledScrollableMonospaceText = styled(ScrollableMonospaceText)(({ theme }) => ({
'&>div': {
@@ -28,22 +29,23 @@ export const ExecutionNodeURL: React.FC<{
copyUrlText: string;
}> = ({ dataSourceURI, copyUrlText }) => {
const [expanded, setExpanded] = React.useState<boolean>(false);
- const isHttps = /^https:/.test(window.location.href);
+ const isHttps = /^https:/.test(env.ADMIN_API || window.location.href);
const ref = React.useRef<HTMLDivElement>(null);
+ const codeSnippetUrl = env.CODE_SNIPPET_URL || window.location.host;

const code = isHttps
? // https snippet
`from flytekit.remote.remote import FlyteRemote
from flytekit.configuration import Config
remote = FlyteRemote(
- Config.for_endpoint("${window.location.host}"),
+ Config.for_endpoint("${codeSnippetUrl}"),
)
remote.get("${dataSourceURI}")`
: // http snippet
`from flytekit.remote.remote import FlyteRemote
from flytekit.configuration import Config
remote = FlyteRemote(
- Config.for_endpoint("${window.location.host}", True),
+ Config.for_endpoint("${codeSnippetUrl}", True),
)
remote.get("${dataSourceURI}")`;

diff --git a/packages/primitives/src/utils/environment.ts b/packages/primitives/src/utils/environment.ts
index 165daea..00ae2b8 100644
--- a/packages/primitives/src/utils/environment.ts
+++ b/packages/primitives/src/utils/environment.ts
@@ -2,6 +2,8 @@ import { env as commonEnv, Env } from '@clients/common/environment';

const envVariables = { ...commonEnv };

+console.warn("envVariables", envVariables);
+
export const currentAdminDomain = window.location.hostname.replace('localhost.', '');

if (!envVariables.ADMIN_API_URL) {
diff --git a/website/console/env/index.ts b/website/console/env/index.ts
index 4114cb9..c124949 100644
--- a/website/console/env/index.ts
+++ b/website/console/env/index.ts
@@ -33,6 +33,7 @@ const CERTIFICATE_PATH = '../../scripts/certificate';
// Use this to create SSL server
const ADMIN_API_USE_SSL = process.env.ADMIN_API_USE_SSL || 'http';

+console.warn("process.env", process.env);
// Admin domain used as base for window URL and API urls
const ADMIN_API_URL = process.env.ADMIN_API_URL?.replace(/https?:\/\//, '') || '';

@@ -77,6 +78,11 @@ const ASSETS_PATH = `${BASE_URL}/assets/`;
*/
const MAINTENANCE_MODE = process.env.MAINTENANCE_MODE || '';

+/**
+ * Controls the endpoint used in Python code snippet
+ */
+const CODE_SNIPPET_URL = process.env.CODE_SNIPPET_URL || '';
+
const processEnv = {
NODE_ENV,
PORT,
@@ -86,8 +92,11 @@ const processEnv = {
BASE_HREF,
DISABLE_CONSOLE_ROUTE_PREFIX,
MAINTENANCE_MODE,
+ CODE_SNIPPET_URL,
};

+console.warn("processEnv", processEnv);
+
export {
NODE_ENV,
PORT,
@@ -101,5 +110,6 @@ export {
ADMIN_API,
LOCAL_DEV_HOST,
MAINTENANCE_MODE,
+ CODE_SNIPPET_URL,
processEnv,
};
--
2.44.0

6 changes: 6 additions & 0 deletions packages/common/src/environment/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ export interface Env extends NodeJS.ProcessEnv {
* @example MAINTENANCE_MODE="We are currently down for maintenance.\n\nPlease try again later."
*/
MAINTENANCE_MODE?: string;

/**
* Controls whether the config object in the inputs/outputs Python code snippet is automatically constructed
* Leave unset to use the config object for endpoint window.location.host
*/
CODE_SNIPPET_USE_AUTO_CONFIG?: string;
}

/** Represents a plain object where string keys map to values of the same type */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Grid from '@mui/material/Grid';
import Link from '@mui/material/Link';
import { RowExpander } from '../Tables/RowExpander';
import { ScrollableMonospaceText } from '../../common/ScrollableMonospaceText';
import { env } from '@clients/common/environment';

const StyledScrollableMonospaceText = styled(ScrollableMonospaceText)(({ theme }) => ({
'&>div': {
Expand All @@ -31,19 +32,18 @@ export const ExecutionNodeURL: React.FC<{
const isHttps = /^https:/.test(window.location.href);
const ref = React.useRef<HTMLDivElement>(null);

const code = isHttps
? // https snippet
`from flytekit.remote.remote import FlyteRemote
const config =
env.CODE_SNIPPET_USE_AUTO_CONFIG === "true"
? 'Config.auto()'
: isHttps
? // https snippet
`Config.for_endpoint("${window.location.host}")`
: // http snippet
`Config.for_endpoint("${window.location.host}", True)`;
const code = `from flytekit.remote.remote import FlyteRemote
from flytekit.configuration import Config
remote = FlyteRemote(
Config.for_endpoint("${window.location.host}"),
)
remote.get("${dataSourceURI}")`
: // http snippet
`from flytekit.remote.remote import FlyteRemote
from flytekit.configuration import Config
remote = FlyteRemote(
Config.for_endpoint("${window.location.host}", True),
${config},
)
remote.get("${dataSourceURI}")`;

Expand Down
7 changes: 7 additions & 0 deletions website/console/env/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ const ASSETS_PATH = `${BASE_URL}/assets/`;
*/
const MAINTENANCE_MODE = process.env.MAINTENANCE_MODE || '';

/**
* Controls whether the config object in the inputs/outputs Python code snippet is automatically constructed
*/
const CODE_SNIPPET_USE_AUTO_CONFIG = process.env.CODE_SNIPPET_USE_AUTO_CONFIG || '';

const processEnv = {
NODE_ENV,
PORT,
Expand All @@ -86,6 +91,7 @@ const processEnv = {
BASE_HREF,
DISABLE_CONSOLE_ROUTE_PREFIX,
MAINTENANCE_MODE,
CODE_SNIPPET_USE_AUTO_CONFIG,
};

export {
Expand All @@ -101,5 +107,6 @@ export {
ADMIN_API,
LOCAL_DEV_HOST,
MAINTENANCE_MODE,
CODE_SNIPPET_USE_AUTO_CONFIG,
processEnv,
};

0 comments on commit f18322e

Please sign in to comment.