Skip to content

Commit

Permalink
feat(backend): add WM_BASE_URL
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenfiszel committed Oct 2, 2022
1 parent 1263450 commit 612f727
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
11 changes: 10 additions & 1 deletion backend/src/variables.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use crate::{
oauth2::{AllClients, _refresh_token},
users::Authed,
utils::StripPath,
BaseUrl,
};
use axum::{
extract::{Extension, Path, Query},
Expand Down Expand Up @@ -86,11 +87,12 @@ pub fn get_reserved_variables(
username: &str,
job_id: &str,
permissioned_as: &str,
base_url: &str,
path: Option<String>,
flow_id: Option<String>,
flow_path: Option<String>,
schedule_path: Option<String>,
) -> [ContextualVariable; 10] {
) -> [ContextualVariable; 11] {
[
ContextualVariable {
name: "WM_WORKSPACE".to_string(),
Expand All @@ -114,6 +116,11 @@ pub fn get_reserved_variables(
value: username.to_string(),
description: "Username of the user that executed the current script".to_string(),
},
ContextualVariable {
name: "WM_BASE_URL".to_string(),
value: base_url.to_string(),
description: "base url of this instance".to_string(),
},
ContextualVariable {
name: "WM_JOB_ID".to_string(),
value: job_id.to_string(),
Expand Down Expand Up @@ -151,6 +158,7 @@ pub fn get_reserved_variables(

async fn list_contextual_variables(
Path(w_id): Path<String>,
Extension(base_url): Extension<Arc<BaseUrl>>,
Authed { username, email, .. }: Authed,
) -> JsonResult<Vec<ContextualVariable>> {
Ok(Json(
Expand All @@ -161,6 +169,7 @@ async fn list_contextual_variables(
&username,
"017e0ad5-f499-73b6-5488-92a61c5196dd",
format!("u/{username}").as_str(),
&base_url.0,
Some("u/user/script_path".to_string()),
Some("017e0ad5-f499-73b6-5488-92a61c5196dd".to_string()),
Some("u/user/encapsulating_flow_path".to_string()),
Expand Down
16 changes: 9 additions & 7 deletions backend/src/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -654,7 +654,7 @@ async fn handle_code_execution_job(
}

async fn handle_go_job(
WorkerConfig { base_internal_url, disable_nuser, disable_nsjail, .. }: &WorkerConfig,
WorkerConfig { base_internal_url, disable_nuser, disable_nsjail, base_url, .. }: &WorkerConfig,
Envs { nsjail_path, go_path, path_env, gopath_env, home_env, .. }: &Envs,
logs: &mut String,
job: &QueuedJob,
Expand Down Expand Up @@ -774,7 +774,7 @@ func main() {{
"#,
);
write_file(job_dir, "main.go", &wrapper_content).await?;
let mut reserved_variables = get_reserved_variables(job, token.clone(), db).await?;
let mut reserved_variables = get_reserved_variables(job, &token, &base_url, db).await?;
reserved_variables.insert("RUST_LOG".to_string(), "info".to_string());

let child = if !disable_nsjail {
Expand Down Expand Up @@ -879,7 +879,7 @@ run();
"#,
);
write_file(job_dir, "main.ts", &wrapper_content).await?;
let mut reserved_variables = get_reserved_variables(job, token.clone(), db).await?;
let mut reserved_variables = get_reserved_variables(job, &token, &base_url, db).await?;
reserved_variables.insert("RUST_LOG".to_string(), "info".to_string());

let hostname_base = base_url.split("://").last().unwrap_or("localhost");
Expand Down Expand Up @@ -941,7 +941,7 @@ run();
}

async fn handle_python_job(
WorkerConfig { base_internal_url, disable_nuser, disable_nsjail, .. }: &WorkerConfig,
WorkerConfig { base_internal_url, base_url, disable_nuser, disable_nsjail, .. }: &WorkerConfig,
Envs {
nsjail_path,
python_path,
Expand Down Expand Up @@ -1129,7 +1129,7 @@ print(res_json)
);
write_file(job_dir, "main.py", &wrapper_content).await?;

let mut reserved_variables = get_reserved_variables(job, token, db).await?;
let mut reserved_variables = get_reserved_variables(job, &token, &base_url, db).await?;
if !disable_nsjail {
let _ = write_file(
job_dir,
Expand Down Expand Up @@ -1373,7 +1373,8 @@ async fn gen_go_mymod(code: &str, job_dir: &String) -> error::Result<()> {

async fn get_reserved_variables(
job: &QueuedJob,
token: String,
token: &str,
base_url: &str,
db: &sqlx::Pool<sqlx::Postgres>,
) -> Result<HashMap<String, String>, Error> {
let flow_path = if let Some(uuid) = job.parent_job {
Expand All @@ -1386,13 +1387,14 @@ async fn get_reserved_variables(
};
let variables = variables::get_reserved_variables(
&job.workspace_id,
&token,
token,
&get_email_from_username(&job.created_by, db)
.await?
.unwrap_or_else(|| "nosuitable@email.xyz".to_string()),
&job.created_by,
&job.id.to_string(),
&job.permissioned_as,
base_url,
job.script_path.clone(),
job.parent_job.map(|x| x.to_string()),
flow_path,
Expand Down

0 comments on commit 612f727

Please sign in to comment.