- Status offen / in Arbeit / zur Abnahme / abgenommen, mit Zeitstempeln - Notizfeld fuer den Azubi, Dateianhaenge bis 25 MB - Speicherpfad nur aus selbst erzeugter UUID, nie aus dem Dateinamen - Auslieferung ueber /anhaenge/<kennung> mit Rechtepruefung bei jedem Abruf, CSP sandbox und nosniff; SVG ausdruecklich nicht erlaubt - Anhaenge haengen an Aufgabe UND Azubi - Ausbilder hakt Kriterien einzeln ab, Note und Rueckmeldung, Abnahme sperrt - Zurueckgeben zur Nacharbeit - "Was auf dich wartet" zeigt offene Abnahmen - Abgenommene Aufgaben zaehlen im Wochenfortschritt mit Behoben: Next.js deckelt Serveraktionen ab Werk bei 1 MB - damit waere kein Handyfoto durchgekommen. bodySizeLimit jetzt 30 MB, Vorabpruefung im Browser, client_max_body_size im Proxy-Beispiel auf 30m. Geaendert: Seiten verweigern fremde Daten mit 404 statt mit einem Fehler. Eigene Seiten fuer "Nicht gefunden" und Stoerfaelle. 24 neue Tests, insgesamt 157. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import type { NextConfig } from 'next';
|
||
|
||
const konfiguration: NextConfig = {
|
||
// Standalone-Ausgabe: das Laufzeit-Image braucht kein node_modules-Verzeichnis.
|
||
output: 'standalone',
|
||
// Native Module dürfen nicht gebündelt werden.
|
||
serverExternalPackages: ['better-sqlite3', '@node-rs/argon2', 'pdfkit'],
|
||
poweredByHeader: false,
|
||
reactStrictMode: true,
|
||
experimental: {
|
||
// Next.js deckelt Serveraktionen sonst bei 1 MB – damit wäre kein einziges
|
||
// Handyfoto durchgekommen. Etwas über der eigenen Grenze von 25 MB, damit
|
||
// eine zu große Datei die *eigene* Meldung bekommt und nicht die des Gerüsts.
|
||
serverActions: { bodySizeLimit: '30mb' },
|
||
},
|
||
eslint: { ignoreDuringBuilds: true },
|
||
async headers() {
|
||
return [
|
||
{
|
||
source: '/:pfad*',
|
||
headers: [
|
||
{ key: 'X-Content-Type-Options', value: 'nosniff' },
|
||
{ key: 'Referrer-Policy', value: 'same-origin' },
|
||
{ key: 'X-Frame-Options', value: 'SAMEORIGIN' },
|
||
],
|
||
},
|
||
];
|
||
},
|
||
};
|
||
|
||
export default konfiguration;
|