chore: release v0.26.5

This commit is contained in:
Ulas Kalayci
2026-04-27 12:51:10 +02:00
parent 29d9d28ee5
commit 6a575520aa
5 changed files with 12 additions and 7 deletions
+5
View File
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.26.5] - 2026-04-27
### Changed
- Birthdays: increased maximum photo upload size from ~0.9 MB to 5 MB
## [0.26.4] - 2026-04-27 ## [0.26.4] - 2026-04-27
### Changed ### Changed
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "oikos", "name": "oikos",
"version": "0.26.4", "version": "0.26.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "oikos", "name": "oikos",
"version": "0.26.4", "version": "0.26.5",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "oikos", "name": "oikos",
"version": "0.26.4", "version": "0.26.5",
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.", "description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
"main": "server/index.js", "main": "server/index.js",
"type": "module", "type": "module",
+3 -3
View File
@@ -87,8 +87,8 @@ app.set('trust proxy', process.env.TRUST_PROXY !== undefined ? process.env.TRUST
// -------------------------------------------------------- // --------------------------------------------------------
// Request-Parsing // Request-Parsing
// -------------------------------------------------------- // --------------------------------------------------------
app.use(express.json({ limit: '1mb' })); app.use(express.json({ limit: '7mb' }));
app.use(express.urlencoded({ extended: true, limit: '1mb' })); app.use(express.urlencoded({ extended: true, limit: '7mb' }));
// JSON-Parse-Fehler abfangen (gibt sonst HTML zurück) // JSON-Parse-Fehler abfangen (gibt sonst HTML zurück)
app.use((err, req, res, next) => { app.use((err, req, res, next) => {
@@ -96,7 +96,7 @@ app.use((err, req, res, next) => {
return res.status(400).json({ error: 'Invalid JSON in request body.', code: 400 }); return res.status(400).json({ error: 'Invalid JSON in request body.', code: 400 });
} }
if (err.type === 'entity.too.large') { if (err.type === 'entity.too.large') {
return res.status(413).json({ error: 'Request body too large (max. 1 MB).', code: 413 }); return res.status(413).json({ error: 'Request body too large (max. 7 MB).', code: 413 });
} }
next(err); next(err);
}); });
+1 -1
View File
@@ -6,7 +6,7 @@ import { deleteBirthdayArtifacts, hydrateBirthday, syncBirthdayArtifacts, syncAl
const log = createLogger('Birthdays'); const log = createLogger('Birthdays');
const router = express.Router(); const router = express.Router();
const MAX_PHOTO_LENGTH = 900_000; const MAX_PHOTO_LENGTH = 6_990_507; // ~5 MB raw image in base64
const PHOTO_RE = /^data:image\/(png|jpeg|jpg|webp|gif);base64,[A-Za-z0-9+/=]+$/; const PHOTO_RE = /^data:image\/(png|jpeg|jpg|webp|gif);base64,[A-Za-z0-9+/=]+$/;
function validatePhotoData(val) { function validatePhotoData(val) {