Skip to content

Commit c0c023d

Browse files
Add configurable path for .env and defaultConnection.json files (#918)
* feat: add configurable folder path for environment files Enables custom configuration folder path for .env and defaultConnection.json through CONFIGURATION_FOLDER_PATH environment variable. Falls back to default client root path if not specified. * fix: formatting
1 parent d35d0a8 commit c0c023d

File tree

3 files changed

+37
-20
lines changed

3 files changed

+37
-20
lines changed

packages/graph-explorer-proxy-server/src/env.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,20 @@ const EnvironmentValuesSchema = z.object({
1919
.enum(["fatal", "error", "warn", "info", "debug", "trace", "silent"])
2020
.default("debug"),
2121
LOG_STYLE: z.enum(["cloudwatch", "default"]).default("default"),
22+
CONFIGURATION_FOLDER_PATH: z.coerce.string().default(clientRoot),
2223
});
2324

25+
const defaultConnectionFolderPath = process.env.CONFIGURATION_FOLDER_PATH
26+
? process.env.CONFIGURATION_FOLDER_PATH
27+
: clientRoot;
28+
2429
// Load environment variables from .env file.
2530
dotenv.config({
26-
path: [path.join(clientRoot, ".env.local"), path.join(clientRoot, ".env")],
31+
path: [
32+
path.join(clientRoot, ".env.local"),
33+
path.join(clientRoot, ".env"),
34+
path.join(defaultConnectionFolderPath, ".env"),
35+
],
2736
});
2837

2938
// Parse the environment values from the process

packages/graph-explorer-proxy-server/src/node-server.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,19 @@ async function fetchData(
163163
}
164164
}
165165

166+
const defaultConnectionFolderPath = env.CONFIGURATION_FOLDER_PATH
167+
? env.CONFIGURATION_FOLDER_PATH
168+
: clientRoot;
169+
166170
app.use(compression()); // Use compression middleware
167171
app.use(cors());
168172
app.use(bodyParser.json({ limit: "50mb" }));
169173
app.use(bodyParser.urlencoded({ extended: true, limit: "50mb" }));
170174
app.use(
171175
"/defaultConnection",
172-
express.static(path.join(clientRoot, "defaultConnection.json"))
176+
express.static(
177+
path.join(defaultConnectionFolderPath, "defaultConnection.json")
178+
)
173179
);
174180

175181
// Host the Graph Explorer UI static files

process-environment.sh

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/sh
22

3+
CONFIGURATION_FOLDER_PATH=${CONFIGURATION_FOLDER_PATH:-"./packages/graph-explorer/"}
4+
35
if [ -f "./config.json" ]; then
46

57
json=$(cat ./config.json)
@@ -17,61 +19,61 @@ if [ -f "./config.json" ]; then
1719
fi
1820

1921
if [ -n "$NEPTUNE_NOTEBOOK" ]; then
20-
echo -e "\nNEPTUNE_NOTEBOOK=${NEPTUNE_NOTEBOOK}" >> ./packages/graph-explorer/.env
22+
echo -e "\nNEPTUNE_NOTEBOOK=${NEPTUNE_NOTEBOOK}" >> $CONFIGURATION_FOLDER_PATH/.env
2123
if [ "$NEPTUNE_NOTEBOOK" == "true" ]; then
2224
# Override Proxy SSL setting if Neptune notebook
2325
PROXY_SERVER_HTTPS_CONNECTION="false"
2426
GRAPH_EXP_HTTPS_CONNECTION="false"
2527
fi
2628
else
27-
echo -e "\nNEPTUNE_NOTEBOOK=false" >> ./packages/graph-explorer/.env
29+
echo -e "\nNEPTUNE_NOTEBOOK=false" >> $CONFIGURATION_FOLDER_PATH/.env
2830
fi
2931

3032
if [ -n "$PROXY_SERVER_HTTPS_CONNECTION" ]; then
31-
echo -e "\nPROXY_SERVER_HTTPS_CONNECTION=${PROXY_SERVER_HTTPS_CONNECTION}" >> ./packages/graph-explorer/.env
33+
echo -e "\nPROXY_SERVER_HTTPS_CONNECTION=${PROXY_SERVER_HTTPS_CONNECTION}" >> $CONFIGURATION_FOLDER_PATH/.env
3234
else
33-
echo -e "\nPROXY_SERVER_HTTPS_CONNECTION=true" >> ./packages/graph-explorer/.env
35+
echo -e "\nPROXY_SERVER_HTTPS_CONNECTION=true" >> $CONFIGURATION_FOLDER_PATH/.env
3436
fi
3537

3638
if [ -n "$GRAPH_EXP_HTTPS_CONNECTION" ]; then
37-
echo -e "\nGRAPH_EXP_HTTPS_CONNECTION=${GRAPH_EXP_HTTPS_CONNECTION}" >> ./packages/graph-explorer/.env
39+
echo -e "\nGRAPH_EXP_HTTPS_CONNECTION=${GRAPH_EXP_HTTPS_CONNECTION}" >> $CONFIGURATION_FOLDER_PATH/.env
3840
else
39-
echo -e "\nGRAPH_EXP_HTTPS_CONNECTION=true" >> ./packages/graph-explorer/.env
41+
echo -e "\nGRAPH_EXP_HTTPS_CONNECTION=true" >> $CONFIGURATION_FOLDER_PATH/.env
4042
fi
4143

4244
# Update the default connection file with the configuration values
4345
if [ -n "$PUBLIC_OR_PROXY_ENDPOINT" ]; then
4446
# Overwrite existing file with an empty string
45-
echo "" > ./packages/graph-explorer/defaultConnection.json
47+
echo "" > $CONFIGURATION_FOLDER_PATH/defaultConnection.json
4648

47-
echo -e "{\n\"GRAPH_EXP_PUBLIC_OR_PROXY_ENDPOINT\":\"${PUBLIC_OR_PROXY_ENDPOINT}\"," >> ./packages/graph-explorer/defaultConnection.json
49+
echo -e "{\n\"GRAPH_EXP_PUBLIC_OR_PROXY_ENDPOINT\":\"${PUBLIC_OR_PROXY_ENDPOINT}\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
4850

4951
if [ -n "$SERVICE_TYPE" ]; then
50-
echo "\"GRAPH_EXP_SERVICE_TYPE\":\"${SERVICE_TYPE}\"," >> ./packages/graph-explorer/defaultConnection.json
52+
echo "\"GRAPH_EXP_SERVICE_TYPE\":\"${SERVICE_TYPE}\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
5153
else
52-
echo "\"GRAPH_EXP_SERVICE_TYPE\":\"neptune-db\"," >> ./packages/graph-explorer/defaultConnection.json
54+
echo "\"GRAPH_EXP_SERVICE_TYPE\":\"neptune-db\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
5355
fi
5456

5557
if [ -n "$GRAPH_TYPE" ]; then
56-
echo "\"GRAPH_EXP_GRAPH_TYPE\":\"${GRAPH_TYPE}\"," >> ./packages/graph-explorer/defaultConnection.json
58+
echo "\"GRAPH_EXP_GRAPH_TYPE\":\"${GRAPH_TYPE}\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
5759
else
5860
if [ "$SERVICE_TYPE" == "neptune-graph" ]; then
59-
echo "\"GRAPH_EXP_GRAPH_TYPE\":\"openCypher\"," >> ./packages/graph-explorer/defaultConnection.json
61+
echo "\"GRAPH_EXP_GRAPH_TYPE\":\"openCypher\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
6062
fi
6163
fi
6264

6365
if [ -n "$USING_PROXY_SERVER" ]; then
64-
echo "\"GRAPH_EXP_USING_PROXY_SERVER\":${USING_PROXY_SERVER}," >> ./packages/graph-explorer/defaultConnection.json
66+
echo "\"GRAPH_EXP_USING_PROXY_SERVER\":${USING_PROXY_SERVER}," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
6567
else
66-
echo "\"GRAPH_EXP_USING_PROXY_SERVER\":false," >> ./packages/graph-explorer/defaultConnection.json
68+
echo "\"GRAPH_EXP_USING_PROXY_SERVER\":false," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
6769
fi
6870

6971
if [ -n "$IAM" ]; then
70-
echo "\"GRAPH_EXP_IAM\":${IAM}," >> ./packages/graph-explorer/defaultConnection.json
72+
echo "\"GRAPH_EXP_IAM\":${IAM}," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
7173
else
72-
echo "\"GRAPH_EXP_IAM\":false," >> ./packages/graph-explorer/defaultConnection.json
74+
echo "\"GRAPH_EXP_IAM\":false," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
7375
fi
7476

75-
echo "\"GRAPH_EXP_CONNECTION_URL\":\"${GRAPH_CONNECTION_URL}\"," >> ./packages/graph-explorer/defaultConnection.json
76-
echo -e "\"GRAPH_EXP_AWS_REGION\":\"${AWS_REGION}\"\n}" >> ./packages/graph-explorer/defaultConnection.json
77+
echo "\"GRAPH_EXP_CONNECTION_URL\":\"${GRAPH_CONNECTION_URL}\"," >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
78+
echo -e "\"GRAPH_EXP_AWS_REGION\":\"${AWS_REGION}\"\n}" >> $CONFIGURATION_FOLDER_PATH/defaultConnection.json
7779
fi

0 commit comments

Comments
 (0)