cors with timeout
This commit is contained in:
parent
4bc4a07ce0
commit
8d23222e95
|
@ -9,6 +9,6 @@ libc = "0.2.155"
|
||||||
serde = { version = "1.0.202", features = ["derive"] }
|
serde = { version = "1.0.202", features = ["derive"] }
|
||||||
tempfile = "3.10.1"
|
tempfile = "3.10.1"
|
||||||
tokio = { version = "1.37.0", features = ["rt-multi-thread"] }
|
tokio = { version = "1.37.0", features = ["rt-multi-thread"] }
|
||||||
tower-http = { version = "0.5.2", features = ["trace"] }
|
tower-http = { version = "0.5.2", features = ["trace", "cors"] }
|
||||||
tracing = "0.1.40"
|
tracing = "0.1.40"
|
||||||
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
||||||
|
|
|
@ -9,6 +9,7 @@ use axum::{
|
||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use tower_http::trace::TraceLayer;
|
use tower_http::trace::TraceLayer;
|
||||||
|
use tower_http::cors::CorsLayer;
|
||||||
use tracing::info_span;
|
use tracing::info_span;
|
||||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||||
|
|
||||||
|
@ -65,7 +66,9 @@ async fn main() {
|
||||||
.with(tracing_subscriber::fmt::layer())
|
.with(tracing_subscriber::fmt::layer())
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
let app = Router::new().route("/v1/exec", post(exec)).layer(
|
let app = Router::new().route("/v1/exec", post(exec))
|
||||||
|
.layer(CorsLayer::permissive())
|
||||||
|
.layer(
|
||||||
TraceLayer::new_for_http().make_span_with(|request: &Request<_>| {
|
TraceLayer::new_for_http().make_span_with(|request: &Request<_>| {
|
||||||
let matched_path = request
|
let matched_path = request
|
||||||
.extensions()
|
.extensions()
|
||||||
|
|
|
@ -27,7 +27,7 @@ const STATIC_ARGS: &[&str] = &[
|
||||||
const HARE_COMMAND: &str = "/usr/local/bin/hare";
|
const HARE_COMMAND: &str = "/usr/local/bin/hare";
|
||||||
|
|
||||||
/// Default command timeout in seconds.
|
/// Default command timeout in seconds.
|
||||||
const DEFAULT_TIMEOUT: u32 = 10;
|
const DEFAULT_TIMEOUT: u32 = 30;
|
||||||
|
|
||||||
fn passwd_files(uid: u32, gid: u32) -> (NamedTempFile, NamedTempFile, Vec<String>) {
|
fn passwd_files(uid: u32, gid: u32) -> (NamedTempFile, NamedTempFile, Vec<String>) {
|
||||||
let uid = uid.to_string();
|
let uid = uid.to_string();
|
||||||
|
@ -96,6 +96,7 @@ fn shared_app_dir() -> (TempDir, Vec<String>) {
|
||||||
|
|
||||||
fn command(app_file: &str) -> Vec<String> {
|
fn command(app_file: &str) -> Vec<String> {
|
||||||
vec![
|
vec![
|
||||||
|
"/usr/bin/timeout".to_string(), DEFAULT_TIMEOUT.to_string(),
|
||||||
HARE_COMMAND.to_string(),
|
HARE_COMMAND.to_string(),
|
||||||
"run".to_string(),
|
"run".to_string(),
|
||||||
app_file.to_string(),
|
app_file.to_string(),
|
||||||
|
|
|
@ -46,13 +46,29 @@
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<codapi-settings url="http://localhost:8080/v1"></codapi-settings>
|
<codapi-settings url="http://joltrast:8080/v1"></codapi-settings>
|
||||||
<div id="playground">
|
<div id="playground">
|
||||||
<pre class="code"><code contenteditable="true">msg = "Hello, World!"
|
<pre class="code"><code contenteditable="true">
|
||||||
print(msg)</code></pre>
|
use fmt;
|
||||||
|
use time;
|
||||||
|
|
||||||
|
export fn main() void = {
|
||||||
|
const greetings = [
|
||||||
|
"Hello, world!",
|
||||||
|
"¡Hola Mundo!",
|
||||||
|
"Γειά σου Κόσμε!",
|
||||||
|
"Привіт, світ!",
|
||||||
|
"こんにちは世界!",
|
||||||
|
];
|
||||||
|
for (let i = 0z; i < len(greetings); i+= 1) {
|
||||||
|
fmt::println(greetings[i])!;
|
||||||
|
time::sleep(1 * time::SECOND);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</code></pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<codapi-snippet sandbox="python" editor="basic" selector="#playground .code">
|
<codapi-snippet sandbox="hare" editor="basic" selector="#playground .code">
|
||||||
</codapi-snippet>
|
</codapi-snippet>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue