fix(cloudflare): protect agent panel, workspaces & shell scripts from Rocket Loader; trust proxy headers
This commit is contained in:
+1
-1
@@ -41,4 +41,4 @@ EXPOSE 8080
|
|||||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
|
||||||
CMD curl -f http://localhost:8080/api/health || exit 1
|
CMD curl -f http://localhost:8080/api/health || exit 1
|
||||||
|
|
||||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]
|
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080", "--proxy-headers", "--forwarded-allow-ips", "*"]
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<script>
|
<script data-cfasync="false">
|
||||||
document.addEventListener('alpine:init', function () {
|
document.addEventListener('alpine:init', function () {
|
||||||
if (window.Alpine && window.Alpine.__fdBreadcrumbRegistered) return;
|
if (window.Alpine && window.Alpine.__fdBreadcrumbRegistered) return;
|
||||||
if (window.Alpine) window.Alpine.__fdBreadcrumbRegistered = true;
|
if (window.Alpine) window.Alpine.__fdBreadcrumbRegistered = true;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
.rt-cursor .rt-cursor-name{position:absolute;top:-14px;left:4px;white-space:nowrap;font-size:9px;line-height:12px;padding:0 4px;border-radius:4px;color:#fff;font-weight:600;letter-spacing:.2px;}
|
.rt-cursor .rt-cursor-name{position:absolute;top:-14px;left:4px;white-space:nowrap;font-size:9px;line-height:12px;padding:0 4px;border-radius:4px;color:#fff;font-weight:600;letter-spacing:.2px;}
|
||||||
.rt-offline{font-size:11px;color:var(--text-tertiary,#999);margin-right:6px;display:none;}
|
.rt-offline{font-size:11px;color:var(--text-tertiary,#999);margin-right:6px;display:none;}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script data-cfasync="false">
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
/* ═══════════ v5.13.0 Realtime — WS gateway, présence, curseurs, merge LWW ═══════════ */
|
/* ═══════════ v5.13.0 Realtime — WS gateway, présence, curseurs, merge LWW ═══════════ */
|
||||||
window.__fdRT = (function () {
|
window.__fdRT = (function () {
|
||||||
|
|||||||
@@ -204,7 +204,7 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
{# ── Global Agent API (available before Alpine for the FAB / shortcut) ── #}
|
{# ── Global Agent API (available before Alpine for the FAB / shortcut) ── #}
|
||||||
<script>
|
<script data-cfasync="false">
|
||||||
(function(){
|
(function(){
|
||||||
var defaultAPI = {
|
var defaultAPI = {
|
||||||
open: function(){ document.dispatchEvent(new CustomEvent('fd-agent-toggle')); },
|
open: function(){ document.dispatchEvent(new CustomEvent('fd-agent-toggle')); },
|
||||||
@@ -456,7 +456,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script data-cfasync="false">
|
||||||
(function(){
|
(function(){
|
||||||
// ── Skills intégrés (workflows « / ») et commandes admin du panneau ──
|
// ── Skills intégrés (workflows « / ») et commandes admin du panneau ──
|
||||||
var FD_ADMIN_CMDS = [
|
var FD_ADMIN_CMDS = [
|
||||||
|
|||||||
@@ -108,9 +108,9 @@
|
|||||||
body.embed-mode .page-editor-wrapper { padding: 8px 16px !important; max-width: 100% !important; }
|
body.embed-mode .page-editor-wrapper { padding: 8px 16px !important; max-width: 100% !important; }
|
||||||
body.embed-mode .page-cover-area { padding-top: 0 !important; }
|
body.embed-mode .page-cover-area { padding-top: 0 !important; }
|
||||||
</style>
|
</style>
|
||||||
<script src="/static/js/htmx.min.js"></script>
|
<script src="/static/js/htmx.min.js" data-cfasync="false"></script>
|
||||||
<script src="/static/js/alpine.min.js" defer data-cfasync="false"></script>
|
<script src="/static/js/alpine.min.js" defer data-cfasync="false"></script>
|
||||||
<script src="/static/js/sortable.min.js" defer></script>
|
<script src="/static/js/sortable.min.js" defer data-cfasync="false"></script>
|
||||||
</head>
|
</head>
|
||||||
<body hx-headers='{"X-CSRF-Token":"__CSRF_PLACEHOLDER__"}'{% if embed_mode %} class="embed-mode"{% endif %}>
|
<body hx-headers='{"X-CSRF-Token":"__CSRF_PLACEHOLDER__"}'{% if embed_mode %} class="embed-mode"{% endif %}>
|
||||||
<div class="app-layout" x-data="appState()">
|
<div class="app-layout" x-data="appState()">
|
||||||
@@ -1942,7 +1942,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/js/app.js?v=2.4.8" defer></script>
|
<script src="/static/js/app.js?v=2.4.8" defer data-cfasync="false"></script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.flowdeck-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.6);z-index:2000;display:flex;align-items:center;justify-content:center;}
|
.flowdeck-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.6);z-index:2000;display:flex;align-items:center;justify-content:center;}
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script data-cfasync="false">
|
||||||
function workspacesPage() {
|
function workspacesPage() {
|
||||||
return {
|
return {
|
||||||
workspaces: [],
|
workspaces: [],
|
||||||
|
|||||||
Reference in New Issue
Block a user