Spaces:
Sleeping
Sleeping
Richard
commited on
Commit
·
b6d41bf
1
Parent(s):
2994705
Add runner token check
Browse files- README.md +3 -1
- wsgi_app.py +9 -1
README.md
CHANGED
@@ -22,5 +22,7 @@ It can be started using these commands:
|
|
22 |
```shell
|
23 |
docker stop mesop-app-runner;
|
24 |
docker rm mesop-app;
|
25 |
-
docker build -t mesop-app-runner . && docker run --name mesop-app-runner
|
|
|
|
|
26 |
```
|
|
|
22 |
```shell
|
23 |
docker stop mesop-app-runner;
|
24 |
docker rm mesop-app;
|
25 |
+
docker build -t mesop-app-runner . && docker run --name mesop-app-runner \
|
26 |
+
-e MESOP_APP_RUNNER_TOKEN=your-secret-token \
|
27 |
+
-d -p 8080:8080 mesop-app-runner;
|
28 |
```
|
wsgi_app.py
CHANGED
@@ -2,6 +2,7 @@ import base64
|
|
2 |
import os
|
3 |
import secrets
|
4 |
import sys
|
|
|
5 |
import traceback
|
6 |
from dataclasses import dataclass, field
|
7 |
from datetime import datetime, timedelta
|
@@ -24,6 +25,11 @@ from mesop.server.static_file_serving import configure_static_file_serving
|
|
24 |
PAGE_EXPIRATION_MINUTES = 10
|
25 |
MAIN_MODULE = "main"
|
26 |
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
@dataclass(frozen=True)
|
29 |
class RegisteredModule:
|
@@ -60,6 +66,9 @@ def create_app(prod_mode: bool, run_block: Callable[..., None] | None = None) ->
|
|
60 |
def exec_route():
|
61 |
global registered_modules
|
62 |
|
|
|
|
|
|
|
63 |
param = request.form.get("code")
|
64 |
new_module = RegisteredModule()
|
65 |
if param is None:
|
@@ -84,7 +93,6 @@ def create_app(prod_mode: bool, run_block: Callable[..., None] | None = None) ->
|
|
84 |
# Clean up old registered paths (except main)
|
85 |
registered_modules_to_delete = set()
|
86 |
for registered_module in registered_modules:
|
87 |
-
current_registered_module = registered_module
|
88 |
if (
|
89 |
registered_module.name != MAIN_MODULE
|
90 |
and registered_module.created_at
|
|
|
2 |
import os
|
3 |
import secrets
|
4 |
import sys
|
5 |
+
import logging
|
6 |
import traceback
|
7 |
from dataclasses import dataclass, field
|
8 |
from datetime import datetime, timedelta
|
|
|
25 |
PAGE_EXPIRATION_MINUTES = 10
|
26 |
MAIN_MODULE = "main"
|
27 |
|
28 |
+
RUNNER_TOKEN = os.getenv("MESOP_APP_RUNNER_TOKEN")
|
29 |
+
if not RUNNER_TOKEN:
|
30 |
+
logging.fatal("`MESOP_APP_RUNNER_TOKEN` environment variable neeeds to be specified.")
|
31 |
+
sys.exit()
|
32 |
+
|
33 |
|
34 |
@dataclass(frozen=True)
|
35 |
class RegisteredModule:
|
|
|
66 |
def exec_route():
|
67 |
global registered_modules
|
68 |
|
69 |
+
if request.form.get("token", "") != RUNNER_TOKEN:
|
70 |
+
return "Tokens do not match.", 400
|
71 |
+
|
72 |
param = request.form.get("code")
|
73 |
new_module = RegisteredModule()
|
74 |
if param is None:
|
|
|
93 |
# Clean up old registered paths (except main)
|
94 |
registered_modules_to_delete = set()
|
95 |
for registered_module in registered_modules:
|
|
|
96 |
if (
|
97 |
registered_module.name != MAIN_MODULE
|
98 |
and registered_module.created_at
|