v2.0.1 — collab-attachments size cap + oumta overview tiles

- relay: raise /api/collab-attachments + /api/attachments/upload POST
  size limit from 256KB to 15MB, matching /api/attachments. Previous
  limit silently dropped any collab image >~100KB as 413 (envelope
  overhead pushes even modest JPEGs past the cap), leaving puller
  clients with broken <img src="uploads/..."> references.
- oumta-dashboard: centre overview tiles, bump value font to 56px,
  introduce .oumta-fail alarm state that paints the full tile red with
  white text. Toggled from JS for cluster state=down, workloads down
  >0, and open incidents >0. Fail colour uses --t-danger so it stays
  in sync with the "unavailable" workload labels.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
thandClaude Opus 4.7 committed 2026-04-17 18:38:17 +02:00
1 parent 1dfffa5d6d
commit 72a7c7c7cc
6 files changed
+43 -9

No files matched your search

+5 -1
View File
@@ -66,7 +66,11 @@ if (str_starts_with($route, '/api/')) {
if ($method === 'OPTIONS') exit;
$contentLength = (int)($_SERVER['CONTENT_LENGTH'] ?? 0);
$sizeLimit = ($route === '/api/attachments') ? 15728640 : 262144;
// Attachment routes handle binary blobs; everything else is JSON metadata.
// A ~150KB image becomes a ~275KB envelope after base64 + GCM framing,
// so 256KB would silently drop any non-trivial image on collab pushes.
$isAttachmentRoute = in_array($route, ['/api/attachments', '/api/attachments/upload', '/api/collab-attachments'], true);
$sizeLimit = $isAttachmentRoute ? 15728640 : 262144;
if ($contentLength > $sizeLimit) jsonResponse(['error' => 'payload too large'], 413);
// Each route file contains its handlers as if-blocks that exit on