From e46704cfc95236af58e720a00ef842ebf654ec8f Mon Sep 17 00:00:00 2001 From: Mario Serrano Date: Mon, 18 May 2026 14:20:13 -0500 Subject: [PATCH 1/2] chore: update version numbers to 26.5.1 in pom.xml and package.json --- extensions/dashboard/sources/pom.xml | 6 +- extensions/email-sms/sources/core/pom.xml | 6 +- extensions/email-sms/sources/pom.xml | 4 +- extensions/email-sms/sources/ui/pom.xml | 6 +- .../packages/files-sdk/package.json | 2 +- .../packages/simple-file-server/README.md | 110 +++++++++++++++++- .../examples/embedded/index.js | 26 +++++ .../examples/embedded/package.json | 17 +++ .../simple-file-server/package-lock.json | 39 ++++--- .../packages/simple-file-server/package.json | 6 +- extensions/entity-files/sources/core/pom.xml | 8 +- extensions/entity-files/sources/pom.xml | 2 +- extensions/entity-files/sources/s3/pom.xml | 4 +- extensions/entity-files/sources/ui/pom.xml | 6 +- extensions/file-importer/sources/core/pom.xml | 4 +- extensions/file-importer/sources/pom.xml | 2 +- extensions/file-importer/sources/ui/pom.xml | 6 +- extensions/finances/sources/api/pom.xml | 2 +- extensions/finances/sources/pom.xml | 2 +- extensions/pom.xml | 2 +- .../reports/packages/reports-sdk/package.json | 2 +- extensions/reports/sources/api/pom.xml | 2 +- extensions/reports/sources/core/pom.xml | 12 +- extensions/reports/sources/pom.xml | 2 +- extensions/reports/sources/ui/pom.xml | 8 +- .../saas/packages/saas-sdk/package.json | 2 +- extensions/saas/sources/api/pom.xml | 4 +- extensions/saas/sources/core/pom.xml | 10 +- extensions/saas/sources/jpa/pom.xml | 6 +- extensions/saas/sources/pom.xml | 2 +- extensions/saas/sources/remote/pom.xml | 4 +- extensions/saas/sources/ui/pom.xml | 8 +- extensions/security/sources/core/pom.xml | 14 +-- extensions/security/sources/pom.xml | 2 +- extensions/security/sources/ui/pom.xml | 8 +- platform/app/pom.xml | 26 ++--- platform/core/actions/pom.xml | 6 +- platform/core/commons/pom.xml | 2 +- platform/core/crud/pom.xml | 10 +- platform/core/domain-jpa/pom.xml | 4 +- platform/core/domain/pom.xml | 2 +- platform/core/integration/pom.xml | 4 +- platform/core/io/pom.xml | 2 +- platform/core/navigation/pom.xml | 8 +- platform/core/reports/pom.xml | 2 +- platform/core/templates/pom.xml | 6 +- platform/core/viewers/pom.xml | 12 +- platform/core/web/pom.xml | 12 +- platform/packages/cli/package-lock.json | 4 +- platform/packages/cli/package.json | 2 +- platform/packages/sdk/package-lock.json | 4 +- platform/packages/sdk/package.json | 2 +- platform/packages/ui-core/package.json | 2 +- platform/packages/vue/package.json | 2 +- platform/starters/zk-starter/pom.xml | 10 +- platform/ui/ui-shared/pom.xml | 8 +- platform/ui/zk/pom.xml | 18 +-- pom.xml | 2 +- themes/pom.xml | 2 +- themes/theme-dynamical/sources/pom.xml | 4 +- 60 files changed, 330 insertions(+), 172 deletions(-) create mode 100644 extensions/entity-files/packages/simple-file-server/examples/embedded/index.js create mode 100644 extensions/entity-files/packages/simple-file-server/examples/embedded/package.json diff --git a/extensions/dashboard/sources/pom.xml b/extensions/dashboard/sources/pom.xml index 954947b5..e5540895 100644 --- a/extensions/dashboard/sources/pom.xml +++ b/extensions/dashboard/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml @@ -38,12 +38,12 @@ tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.saas.api - 26.5.0 + 26.5.1 diff --git a/extensions/email-sms/sources/core/pom.xml b/extensions/email-sms/sources/core/pom.xml index 8156aee1..aea065c7 100644 --- a/extensions/email-sms/sources/core/pom.xml +++ b/extensions/email-sms/sources/core/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules.email.parent tools.dynamia.modules - 26.5.0 + 26.5.1 tools.dynamia.modules.email @@ -50,12 +50,12 @@ tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.templates - 26.5.0 + 26.5.1 org.springframework diff --git a/extensions/email-sms/sources/pom.xml b/extensions/email-sms/sources/pom.xml index ba4efc11..bf2bf723 100644 --- a/extensions/email-sms/sources/pom.xml +++ b/extensions/email-sms/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml @@ -85,7 +85,7 @@ tools.dynamia.modules tools.dynamia.modules.saas.jpa - 26.5.0 + 26.5.1 diff --git a/extensions/email-sms/sources/ui/pom.xml b/extensions/email-sms/sources/ui/pom.xml index 92669853..d0ac8639 100644 --- a/extensions/email-sms/sources/ui/pom.xml +++ b/extensions/email-sms/sources/ui/pom.xml @@ -22,7 +22,7 @@ tools.dynamia.modules.email.parent tools.dynamia.modules - 26.5.0 + 26.5.1 DynamiaModules - Email UI @@ -34,12 +34,12 @@ tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.email - 26.5.0 + 26.5.1 tools.dynamia.zk.addons diff --git a/extensions/entity-files/packages/files-sdk/package.json b/extensions/entity-files/packages/files-sdk/package.json index 6593b395..2bd9e653 100644 --- a/extensions/entity-files/packages/files-sdk/package.json +++ b/extensions/entity-files/packages/files-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/files-sdk", - "version": "26.5.0", + "version": "26.5.1", "website": "https://dynamia.tools", "description": "TypeScript/JavaScript client SDK for the Dynamia Entity Files extension REST API", "keywords": [ diff --git a/extensions/entity-files/packages/simple-file-server/README.md b/extensions/entity-files/packages/simple-file-server/README.md index a00f99fb..910d4dea 100644 --- a/extensions/entity-files/packages/simple-file-server/README.md +++ b/extensions/entity-files/packages/simple-file-server/README.md @@ -246,9 +246,117 @@ Each bucket also contains an internal `.sfs/` directory: - **Path traversal protection**: canonical path validation on every request - **No public access**: no anonymous or public bucket support +## Requirements + +| Requirement | Minimum version | +|---|---| +| Node.js | **18.17.0** | +| npm | 9+ (or pnpm 8+) | + +> **Why 18.17.0?** The `sharp` native image-processing library requires exactly `^18.17.0` as the lowest Node 18 patch that ships a compatible binary. All other dependencies support Node ≥ 18. + +## Embedded Usage + +You can start SFS programmatically inside your own Node.js application — no CLI needed. + +### Installation + +```bash +npm install @dynamia-tools/simple-file-server +``` + +### Minimal example + +```js +// index.js (type: "module") +import { startServer } from '@dynamia-tools/simple-file-server' + +// Reads configuration from the .sfs/ directory in process.cwd(). +// Provision buckets and identities first with the CLI, or do it +// programmatically (see "Full programmatic setup" below). +startServer({ + host: process.env.SFS_HOST ?? '0.0.0.0', + port: parseInt(process.env.SFS_PORT ?? '8080', 10), +}).catch((err) => { + console.error('Fatal error during startup:', err) + process.exit(1) +}) +``` + +### Full programmatic setup + +Use `createRuntime` to bootstrap services and configure buckets/identities entirely in code: + +```js +import path from 'node:path' +import { createRuntime, createServer } from '@dynamia-tools/simple-file-server' + +const runtime = await createRuntime({ + dataDir: path.join(process.cwd(), '.sfs'), + host: '0.0.0.0', + port: 8080, + logLevel: 'info', +}) + +const { config, bucketService, storageService, thumbnailService, + identityService, operationalLogger } = runtime + +// Create a bucket (idempotent pattern) +if (!await bucketService.find('documents')) { + await bucketService.create('documents', '/mnt/storage/documents') +} + +// Create an identity (idempotent pattern) +if (!await identityService.find('app-user')) { + await identityService.create('app-user', process.env.APP_SECRET ?? 'changeme') +} + +// Grant permissions +await identityService.grant('app-user', { + bucket: 'documents', + prefixes: ['/'], // entire bucket + permissions: ['read', 'write', 'delete'], +}) + +// Validate buckets and start the server +await bucketService.validateStartup() + +const server = await createServer({ + config, bucketService, storageService, + thumbnailService, identityService, operationalLogger, +}) + +process.on('SIGTERM', async () => { await server.close(); process.exit(0) }) +process.on('SIGINT', async () => { await server.close(); process.exit(0) }) + +await server.listen({ host: config.host, port: config.port }) +``` + +### Available exports + +| Export | Description | +|---|---| +| `startServer(overrides?)` | One-call bootstrap: creates runtime + server + starts listening | +| `createRuntime(overrides?)` | Initialises services and data dirs, returns the `SFSRuntime` object | +| `createServer(runtime)` | Builds and returns the Fastify instance (does not call `.listen`) | +| `BucketService` | Manage bucket definitions | +| `IdentityService` | Manage identities and grants | +| `StorageService` | Low-level file upload / download / list | +| `ThumbnailService` | On-the-fly image thumbnails via Sharp | +| `OperationalLogger` | Structured JSONL access + error logs | + +### Environment variables + +| Variable | Default | Description | +|---|---|---| +| `SFS_DATA_DIR` | `/.sfs` | Where SFS stores config, identities and buckets | +| `SFS_HOST` | `0.0.0.0` | Bind host | +| `SFS_PORT` | `8080` | Bind port | +| `SFS_LOG_LEVEL` | `info` | Pino log level (`trace` `debug` `info` `warn` `error`) | + ## Technology Stack -- **Node.js 22+** with TypeScript (strict mode) +- **Node.js 18.17+** with TypeScript (strict mode) - **Fastify** for high-throughput HTTP - **Pino** for structured JSON logging - **Sharp** for efficient thumbnail generation diff --git a/extensions/entity-files/packages/simple-file-server/examples/embedded/index.js b/extensions/entity-files/packages/simple-file-server/examples/embedded/index.js new file mode 100644 index 00000000..44db7473 --- /dev/null +++ b/extensions/entity-files/packages/simple-file-server/examples/embedded/index.js @@ -0,0 +1,26 @@ +/** + * simple-file-server — Embedded Mode Example + * + * Starts the server using the configuration already present in the + * current working directory (.sfs/ folder). No extra setup is done + * here — use the CLI (`sfs create bucket …`, `sfs create identity …`) + * to provision buckets and identities beforehand. + * + * Configuration via environment variables (all optional): + * SFS_HOST – bind host (default: 0.0.0.0) + * SFS_PORT – bind port (default: 8500) + * SFS_LOG_LEVEL – log level (default: info) + * + * Usage: + * npm install + * npm start + */ +import { startServer } from '@dynamia-tools/simple-file-server' + +const PORT = parseInt(process.env.SFS_PORT ?? '8500', 10) +const HOST = process.env.SFS_HOST ?? '0.0.0.0' + +startServer({ port: PORT, host: HOST }).catch((err) => { + console.error('Fatal error during startup:', err) + process.exit(1) +}) diff --git a/extensions/entity-files/packages/simple-file-server/examples/embedded/package.json b/extensions/entity-files/packages/simple-file-server/examples/embedded/package.json new file mode 100644 index 00000000..aaa6f98a --- /dev/null +++ b/extensions/entity-files/packages/simple-file-server/examples/embedded/package.json @@ -0,0 +1,17 @@ +{ + "name": "sfs-embedded-example", + "version": "1.0.0", + "description": "Example: using simple-file-server in embedded mode (programmatic API)", + "type": "module", + "scripts": { + "start": "node index.js", + "start:debug": "node --inspect index.js" + }, + "dependencies": { + "@dynamia-tools/simple-file-server": "^26.5.0" + }, + "engines": { + "node": ">=18.17.0" + } +} + diff --git a/extensions/entity-files/packages/simple-file-server/package-lock.json b/extensions/entity-files/packages/simple-file-server/package-lock.json index 0f43b32e..5a6f304e 100644 --- a/extensions/entity-files/packages/simple-file-server/package-lock.json +++ b/extensions/entity-files/packages/simple-file-server/package-lock.json @@ -1,12 +1,12 @@ { "name": "@dynamia-tools/simple-file-server", - "version": "26.5.0", + "version": "26.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@dynamia-tools/simple-file-server", - "version": "26.5.0", + "version": "26.5.1", "license": "Apache-2.0", "dependencies": { "@fastify/sensible": "^6.0.4", @@ -14,7 +14,7 @@ "commander": "^13.1.0", "fastify": "^5.3.0", "fastify-plugin": "^5.1.0", - "file-type": "^21.0.0", + "file-type": "^20.0.0", "pino": "^9.7.0", "pino-pretty": "^13.0.0", "sharp": "^0.34.1", @@ -32,7 +32,7 @@ "vitest": "^3.0.0" }, "engines": { - "node": ">=22.0.0" + "node": ">=18.17.0" } }, "node_modules/@borewit/text-codec": { @@ -1480,13 +1480,14 @@ ] }, "node_modules/@tokenizer/inflate": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz", - "integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.2.7.tgz", + "integrity": "sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==", "license": "MIT", "dependencies": { - "debug": "^4.4.3", - "token-types": "^6.1.1" + "debug": "^4.4.0", + "fflate": "^0.8.2", + "token-types": "^6.0.0" }, "engines": { "node": ">=18" @@ -2123,19 +2124,25 @@ } } }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "license": "MIT" + }, "node_modules/file-type": { - "version": "21.3.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.4.tgz", - "integrity": "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-20.5.0.tgz", + "integrity": "sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg==", "license": "MIT", "dependencies": { - "@tokenizer/inflate": "^0.4.1", - "strtok3": "^10.3.4", - "token-types": "^6.1.1", + "@tokenizer/inflate": "^0.2.6", + "strtok3": "^10.2.0", + "token-types": "^6.0.0", "uint8array-extras": "^1.4.0" }, "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/file-type?sponsor=1" diff --git a/extensions/entity-files/packages/simple-file-server/package.json b/extensions/entity-files/packages/simple-file-server/package.json index 2df7553b..19520154 100644 --- a/extensions/entity-files/packages/simple-file-server/package.json +++ b/extensions/entity-files/packages/simple-file-server/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/simple-file-server", - "version": "26.5.0", + "version": "26.5.1", "description": "Standalone filesystem-native file server with a minimal S3-style API for secure server-to-server file operations", "keywords": [ "dynamia", @@ -57,7 +57,7 @@ "commander": "^13.1.0", "fastify": "^5.3.0", "fastify-plugin": "^5.1.0", - "file-type": "^21.0.0", + "file-type": "^20.0.0", "pino": "^9.7.0", "pino-pretty": "^13.0.0", "sharp": "^0.34.1", @@ -71,6 +71,6 @@ "vitest": "^3.0.0" }, "engines": { - "node": ">=22.0.0" + "node": ">=18.17.0" } } diff --git a/extensions/entity-files/sources/core/pom.xml b/extensions/entity-files/sources/core/pom.xml index 0378e15d..4b0e3e2e 100644 --- a/extensions/entity-files/sources/core/pom.xml +++ b/extensions/entity-files/sources/core/pom.xml @@ -22,7 +22,7 @@ tools.dynamia.modules.entityfiles.parent tools.dynamia.modules - 26.5.0 + 26.5.1 DynamiaModules - EntityFiles - Core tools.dynamia.modules.entityfiles @@ -54,20 +54,20 @@ tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 jar tools.dynamia tools.dynamia.io - 26.5.0 + 26.5.1 jar tools.dynamia tools.dynamia.web - 26.5.0 + 26.5.1 jar diff --git a/extensions/entity-files/sources/pom.xml b/extensions/entity-files/sources/pom.xml index 87655d46..fbaf0ac6 100644 --- a/extensions/entity-files/sources/pom.xml +++ b/extensions/entity-files/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/entity-files/sources/s3/pom.xml b/extensions/entity-files/sources/s3/pom.xml index 8444e78d..70f2150f 100644 --- a/extensions/entity-files/sources/s3/pom.xml +++ b/extensions/entity-files/sources/s3/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.entityfiles.parent - 26.5.0 + 26.5.1 DynamiaModules - EntityFiles - S3 @@ -49,7 +49,7 @@ tools.dynamia.modules tools.dynamia.modules.entityfiles - 26.5.0 + 26.5.1 software.amazon.awssdk diff --git a/extensions/entity-files/sources/ui/pom.xml b/extensions/entity-files/sources/ui/pom.xml index f0a976a0..591e028c 100644 --- a/extensions/entity-files/sources/ui/pom.xml +++ b/extensions/entity-files/sources/ui/pom.xml @@ -22,7 +22,7 @@ tools.dynamia.modules.entityfiles.parent tools.dynamia.modules - 26.5.0 + 26.5.1 DynamiaModules - EntityFiles UI tools.dynamia.modules.entityfiles.ui @@ -48,12 +48,12 @@ tools.dynamia.modules tools.dynamia.modules.entityfiles - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 jar diff --git a/extensions/file-importer/sources/core/pom.xml b/extensions/file-importer/sources/core/pom.xml index 80ef3540..b4a41bbc 100644 --- a/extensions/file-importer/sources/core/pom.xml +++ b/extensions/file-importer/sources/core/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules.importer.parent tools.dynamia.modules - 26.5.0 + 26.5.1 Dynamia Modules - Importer Core tools.dynamia.modules.importer @@ -56,7 +56,7 @@ tools.dynamia tools.dynamia.reports - 26.5.0 + 26.5.1 diff --git a/extensions/file-importer/sources/pom.xml b/extensions/file-importer/sources/pom.xml index a7d56064..78f20784 100644 --- a/extensions/file-importer/sources/pom.xml +++ b/extensions/file-importer/sources/pom.xml @@ -26,7 +26,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/file-importer/sources/ui/pom.xml b/extensions/file-importer/sources/ui/pom.xml index 11c92729..e81924bc 100644 --- a/extensions/file-importer/sources/ui/pom.xml +++ b/extensions/file-importer/sources/ui/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules.importer.parent tools.dynamia.modules - 26.5.0 + 26.5.1 Dynamia Modules - Importer UI tools.dynamia.modules.importer.ui @@ -55,13 +55,13 @@ tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.importer - 26.5.0 + 26.5.1 diff --git a/extensions/finances/sources/api/pom.xml b/extensions/finances/sources/api/pom.xml index ed2fe779..a7045f82 100644 --- a/extensions/finances/sources/api/pom.xml +++ b/extensions/finances/sources/api/pom.xml @@ -26,7 +26,7 @@ tools.dynamia.modules tools.dynamia.modules.finances.parent - 26.5.0 + 26.5.1 Dynamia Modules - Finances API diff --git a/extensions/finances/sources/pom.xml b/extensions/finances/sources/pom.xml index 4b33867a..d9732afd 100644 --- a/extensions/finances/sources/pom.xml +++ b/extensions/finances/sources/pom.xml @@ -26,7 +26,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/pom.xml b/extensions/pom.xml index 034828b4..30f3b600 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -6,7 +6,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../pom.xml diff --git a/extensions/reports/packages/reports-sdk/package.json b/extensions/reports/packages/reports-sdk/package.json index 7e9fcc04..018618f9 100644 --- a/extensions/reports/packages/reports-sdk/package.json +++ b/extensions/reports/packages/reports-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/reports-sdk", - "version": "26.5.0", + "version": "26.5.1", "website": "https://dynamia.tools", "description": "TypeScript/JavaScript client SDK for the Dynamia Reports extension REST API", "keywords": [ diff --git a/extensions/reports/sources/api/pom.xml b/extensions/reports/sources/api/pom.xml index f278dee8..eee7d154 100644 --- a/extensions/reports/sources/api/pom.xml +++ b/extensions/reports/sources/api/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.reports.parent - 26.5.0 + 26.5.1 DynamiaModules - Reports API diff --git a/extensions/reports/sources/core/pom.xml b/extensions/reports/sources/core/pom.xml index 0a15fc02..a2aa883e 100644 --- a/extensions/reports/sources/core/pom.xml +++ b/extensions/reports/sources/core/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.reports.parent - 26.5.0 + 26.5.1 DynamiaModules - Reports Core @@ -50,17 +50,17 @@ tools.dynamia.modules tools.dynamia.modules.reports.api - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.saas.jpa - 26.5.0 + 26.5.1 org.springframework @@ -69,12 +69,12 @@ tools.dynamia tools.dynamia.reports - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.templates - 26.5.0 + 26.5.1 compile diff --git a/extensions/reports/sources/pom.xml b/extensions/reports/sources/pom.xml index 9ff56312..27d2af56 100644 --- a/extensions/reports/sources/pom.xml +++ b/extensions/reports/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/reports/sources/ui/pom.xml b/extensions/reports/sources/ui/pom.xml index c8d93e6f..62cc73ac 100644 --- a/extensions/reports/sources/ui/pom.xml +++ b/extensions/reports/sources/ui/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.reports.parent - 26.5.0 + 26.5.1 DynamiaModules - Reports UI @@ -49,17 +49,17 @@ tools.dynamia.modules tools.dynamia.modules.reports.core - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.dashboard - 26.5.0 + 26.5.1 io.swagger.core.v3 diff --git a/extensions/saas/packages/saas-sdk/package.json b/extensions/saas/packages/saas-sdk/package.json index 4496394a..69eac2ab 100644 --- a/extensions/saas/packages/saas-sdk/package.json +++ b/extensions/saas/packages/saas-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/saas-sdk", - "version": "26.5.0", + "version": "26.5.1", "website": "https://dynamia.tools", "description": "TypeScript/JavaScript client SDK for the Dynamia SaaS extension REST API", "keywords": [ diff --git a/extensions/saas/sources/api/pom.xml b/extensions/saas/sources/api/pom.xml index 770a9341..7c5999b9 100644 --- a/extensions/saas/sources/api/pom.xml +++ b/extensions/saas/sources/api/pom.xml @@ -26,7 +26,7 @@ tools.dynamia.modules tools.dynamia.modules.saas.parent - 26.5.0 + 26.5.1 @@ -55,7 +55,7 @@ tools.dynamia tools.dynamia.actions - 26.5.0 + 26.5.1 org.springframework.boot diff --git a/extensions/saas/sources/core/pom.xml b/extensions/saas/sources/core/pom.xml index c011e59a..e7514fbf 100644 --- a/extensions/saas/sources/core/pom.xml +++ b/extensions/saas/sources/core/pom.xml @@ -22,7 +22,7 @@ tools.dynamia.modules tools.dynamia.modules.saas.parent - 26.5.0 + 26.5.1 DynamiaModules - SaaS Core @@ -49,18 +49,18 @@ tools.dynamia.modules tools.dynamia.modules.saas.api - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.saas.jpa - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 @@ -86,7 +86,7 @@ tools.dynamia.modules tools.dynamia.modules.entityfiles - 26.5.0 + 26.5.1 org.hibernate.orm diff --git a/extensions/saas/sources/jpa/pom.xml b/extensions/saas/sources/jpa/pom.xml index d381c404..76995d51 100644 --- a/extensions/saas/sources/jpa/pom.xml +++ b/extensions/saas/sources/jpa/pom.xml @@ -24,7 +24,7 @@ tools.dynamia.modules.saas.parent tools.dynamia.modules - 26.5.0 + 26.5.1 DynamiaModules - SaaS JPA @@ -35,12 +35,12 @@ tools.dynamia.modules tools.dynamia.modules.saas.api - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 diff --git a/extensions/saas/sources/pom.xml b/extensions/saas/sources/pom.xml index 4b66b577..08e93708 100644 --- a/extensions/saas/sources/pom.xml +++ b/extensions/saas/sources/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/saas/sources/remote/pom.xml b/extensions/saas/sources/remote/pom.xml index 0c0557b4..2ce77ef9 100644 --- a/extensions/saas/sources/remote/pom.xml +++ b/extensions/saas/sources/remote/pom.xml @@ -25,7 +25,7 @@ tools.dynamia.modules.saas.parent tools.dynamia.modules - 26.5.0 + 26.5.1 @@ -38,7 +38,7 @@ tools.dynamia.modules tools.dynamia.modules.saas.jpa - 26.5.0 + 26.5.1 diff --git a/extensions/saas/sources/ui/pom.xml b/extensions/saas/sources/ui/pom.xml index d51a64e9..e36b95ad 100644 --- a/extensions/saas/sources/ui/pom.xml +++ b/extensions/saas/sources/ui/pom.xml @@ -22,7 +22,7 @@ tools.dynamia.modules tools.dynamia.modules.saas.parent - 26.5.0 + 26.5.1 DynamiaModules - SaaS UI tools.dynamia.modules.saas.ui @@ -54,12 +54,12 @@ tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.saas - 26.5.0 + 26.5.1 @@ -70,7 +70,7 @@ tools.dynamia.modules tools.dynamia.modules.entityfiles.ui - 26.5.0 + 26.5.1 diff --git a/extensions/security/sources/core/pom.xml b/extensions/security/sources/core/pom.xml index c340fd85..cd0f6bf8 100644 --- a/extensions/security/sources/core/pom.xml +++ b/extensions/security/sources/core/pom.xml @@ -17,7 +17,7 @@ tools.dynamia.modules tools.dynamia.modules.security.parent - 26.5.0 + 26.5.1 4.0.0 @@ -32,34 +32,34 @@ tools.dynamia.modules tools.dynamia.modules.saas.api - 26.5.0 + 26.5.1 tools.dynamia.modules tools.dynamia.modules.entityfiles - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.web - 26.5.0 + 26.5.1 diff --git a/extensions/security/sources/pom.xml b/extensions/security/sources/pom.xml index 426f8d2f..d7d4d643 100644 --- a/extensions/security/sources/pom.xml +++ b/extensions/security/sources/pom.xml @@ -19,7 +19,7 @@ tools.dynamia.modules tools.dynamia.modules.parent - 26.5.0 + 26.5.1 ../../pom.xml diff --git a/extensions/security/sources/ui/pom.xml b/extensions/security/sources/ui/pom.xml index da1546e5..bdb98f91 100644 --- a/extensions/security/sources/ui/pom.xml +++ b/extensions/security/sources/ui/pom.xml @@ -17,7 +17,7 @@ tools.dynamia.modules tools.dynamia.modules.security.parent - 26.5.0 + 26.5.1 DynamiaModules - Security UI @@ -44,18 +44,18 @@ tools.dynamia.modules tools.dynamia.modules.security - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.app - 26.5.0 + 26.5.1 diff --git a/platform/app/pom.xml b/platform/app/pom.xml index 183f9f16..8e183829 100644 --- a/platform/app/pom.xml +++ b/platform/app/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../pom.xml @@ -74,58 +74,58 @@ tools.dynamia tools.dynamia.actions - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.crud - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.io - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.navigation - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.reports - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.templates - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.viewers - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.web - 26.5.0 + 26.5.1 @@ -205,7 +205,7 @@ tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 test diff --git a/platform/core/actions/pom.xml b/platform/core/actions/pom.xml index 3f094e78..8041cd90 100644 --- a/platform/core/actions/pom.xml +++ b/platform/core/actions/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -65,12 +65,12 @@ tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 diff --git a/platform/core/commons/pom.xml b/platform/core/commons/pom.xml index 9ce714f1..8370e989 100644 --- a/platform/core/commons/pom.xml +++ b/platform/core/commons/pom.xml @@ -25,7 +25,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml DynamiaTools - Commons diff --git a/platform/core/crud/pom.xml b/platform/core/crud/pom.xml index 0cf2b142..8e6ae8df 100644 --- a/platform/core/crud/pom.xml +++ b/platform/core/crud/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -62,23 +62,23 @@ tools.dynamia tools.dynamia.actions - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.viewers - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.navigation - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 test diff --git a/platform/core/domain-jpa/pom.xml b/platform/core/domain-jpa/pom.xml index 0aa32f31..57298ba7 100644 --- a/platform/core/domain-jpa/pom.xml +++ b/platform/core/domain-jpa/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -65,7 +65,7 @@ tools.dynamia tools.dynamia.domain - 26.5.0 + 26.5.1 diff --git a/platform/core/domain/pom.xml b/platform/core/domain/pom.xml index 5fac0789..8115135b 100644 --- a/platform/core/domain/pom.xml +++ b/platform/core/domain/pom.xml @@ -26,7 +26,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml DynamiaTools - Domain diff --git a/platform/core/integration/pom.xml b/platform/core/integration/pom.xml index 4de4388f..bcf4eb6a 100644 --- a/platform/core/integration/pom.xml +++ b/platform/core/integration/pom.xml @@ -27,7 +27,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -67,7 +67,7 @@ tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 provided diff --git a/platform/core/io/pom.xml b/platform/core/io/pom.xml index b91fc6a7..aa2f457d 100644 --- a/platform/core/io/pom.xml +++ b/platform/core/io/pom.xml @@ -28,7 +28,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml diff --git a/platform/core/navigation/pom.xml b/platform/core/navigation/pom.xml index d5257f64..66a84341 100644 --- a/platform/core/navigation/pom.xml +++ b/platform/core/navigation/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -63,17 +63,17 @@ tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.actions - 26.5.0 + 26.5.1 diff --git a/platform/core/reports/pom.xml b/platform/core/reports/pom.xml index c82663ec..5a0a154d 100644 --- a/platform/core/reports/pom.xml +++ b/platform/core/reports/pom.xml @@ -26,7 +26,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml diff --git a/platform/core/templates/pom.xml b/platform/core/templates/pom.xml index 768a2c54..d3ccd570 100644 --- a/platform/core/templates/pom.xml +++ b/platform/core/templates/pom.xml @@ -23,7 +23,7 @@ tools.dynamia.parent tools.dynamia - 26.5.0 + 26.5.1 ../../../pom.xml @@ -64,12 +64,12 @@ tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 diff --git a/platform/core/viewers/pom.xml b/platform/core/viewers/pom.xml index 556d68cb..542546d9 100644 --- a/platform/core/viewers/pom.xml +++ b/platform/core/viewers/pom.xml @@ -25,7 +25,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -67,27 +67,27 @@ tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.io - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.actions - 26.5.0 + 26.5.1 org.yaml diff --git a/platform/core/web/pom.xml b/platform/core/web/pom.xml index 0fc777ca..93a4f5db 100644 --- a/platform/core/web/pom.xml +++ b/platform/core/web/pom.xml @@ -29,7 +29,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -88,27 +88,27 @@ tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.navigation - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.viewers - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.crud - 26.5.0 + 26.5.1 org.springframework diff --git a/platform/packages/cli/package-lock.json b/platform/packages/cli/package-lock.json index 7db0111b..bed6e67d 100644 --- a/platform/packages/cli/package-lock.json +++ b/platform/packages/cli/package-lock.json @@ -1,12 +1,12 @@ { "name": "@dynamia-tools/cli", - "version": "26.5.0", + "version": "26.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@dynamia-tools/cli", - "version": "26.5.0", + "version": "26.5.1", "license": "Apache-2.0", "dependencies": { "@inquirer/prompts": "^7.0.0", diff --git a/platform/packages/cli/package.json b/platform/packages/cli/package.json index a5f124ad..69f1aaeb 100644 --- a/platform/packages/cli/package.json +++ b/platform/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/cli", - "version": "26.5.0", + "version": "26.5.1", "description": "Dynamia Tools CLI — Scaffold new Dynamia Platform projects", "keywords": [ "dynamia", diff --git a/platform/packages/sdk/package-lock.json b/platform/packages/sdk/package-lock.json index 972682d8..d69bb72a 100644 --- a/platform/packages/sdk/package-lock.json +++ b/platform/packages/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@dynamia-tools/sdk", - "version": "26.5.0", + "version": "26.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@dynamia-tools/sdk", - "version": "26.5.0", + "version": "26.5.1", "license": "Apache-2.0", "devDependencies": { "@types/node": "^22.0.0", diff --git a/platform/packages/sdk/package.json b/platform/packages/sdk/package.json index f05b3d19..a8a6b575 100644 --- a/platform/packages/sdk/package.json +++ b/platform/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/sdk", - "version": "26.5.0", + "version": "26.5.1", "website": "https://dynamia.tools", "description": "Official JavaScript / TypeScript client SDK for Dynamia Platform REST APIs", "keywords": [ diff --git a/platform/packages/ui-core/package.json b/platform/packages/ui-core/package.json index 0d773767..e6897e0b 100644 --- a/platform/packages/ui-core/package.json +++ b/platform/packages/ui-core/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/ui-core", - "version": "26.5.0", + "version": "26.5.1", "description": "Framework-agnostic view/viewer/renderer core for Dynamia Platform", "keywords": [ "dynamia", diff --git a/platform/packages/vue/package.json b/platform/packages/vue/package.json index 933db10d..a5af1350 100644 --- a/platform/packages/vue/package.json +++ b/platform/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@dynamia-tools/vue", - "version": "26.5.0", + "version": "26.5.1", "description": "Vue 3 adapter for Dynamia Platform UI", "keywords": [ "dynamia", diff --git a/platform/starters/zk-starter/pom.xml b/platform/starters/zk-starter/pom.xml index 672308f4..18e99a7a 100644 --- a/platform/starters/zk-starter/pom.xml +++ b/platform/starters/zk-starter/pom.xml @@ -4,7 +4,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -28,22 +28,22 @@ tools.dynamia tools.dynamia.app - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain.jpa - 26.5.0 + 26.5.1 org.hibernate.validator diff --git a/platform/ui/ui-shared/pom.xml b/platform/ui/ui-shared/pom.xml index e3ddcd27..3646f530 100644 --- a/platform/ui/ui-shared/pom.xml +++ b/platform/ui/ui-shared/pom.xml @@ -23,7 +23,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../../../pom.xml @@ -64,17 +64,17 @@ tools.dynamia tools.dynamia.integration - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.commons - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.io - 26.5.0 + 26.5.1 diff --git a/platform/ui/zk/pom.xml b/platform/ui/zk/pom.xml index b5a2799f..a4fb5fa4 100644 --- a/platform/ui/zk/pom.xml +++ b/platform/ui/zk/pom.xml @@ -21,7 +21,7 @@ tools.dynamia.parent tools.dynamia - 26.5.0 + 26.5.1 ../../../pom.xml 4.0.0 @@ -99,31 +99,31 @@ tools.dynamia tools.dynamia.web - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.navigation - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.ui - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.domain - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.viewers - 26.5.0 + 26.5.1 org.yaml @@ -134,19 +134,19 @@ tools.dynamia tools.dynamia.crud - 26.5.0 + 26.5.1 tools.dynamia tools.dynamia.reports - 26.5.0 + 26.5.1 compile tools.dynamia tools.dynamia.templates - 26.5.0 + 26.5.1 compile diff --git a/pom.xml b/pom.xml index e9729938..95797d86 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ 4.0.0 tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 pom Dynamia Soluciones IT SAS diff --git a/themes/pom.xml b/themes/pom.xml index 90bdb201..85de2ed5 100644 --- a/themes/pom.xml +++ b/themes/pom.xml @@ -6,7 +6,7 @@ tools.dynamia tools.dynamia.parent - 26.5.0 + 26.5.1 ../pom.xml diff --git a/themes/theme-dynamical/sources/pom.xml b/themes/theme-dynamical/sources/pom.xml index 62c40257..17c37bfe 100644 --- a/themes/theme-dynamical/sources/pom.xml +++ b/themes/theme-dynamical/sources/pom.xml @@ -24,7 +24,7 @@ tools.dynamia.themes tools.dynamia.themes.parent - 26.5.0 + 26.5.1 ../../pom.xml @@ -102,7 +102,7 @@ tools.dynamia tools.dynamia.zk - 26.5.0 + 26.5.1 provided From a308f90605bfc588eea9abaf398d8855cc335c2f Mon Sep 17 00:00:00 2001 From: Mario Serrano Date: Mon, 18 May 2026 14:39:51 -0500 Subject: [PATCH 2/2] feat: update Simple File Server to version 26.5.1 and enhance server startup with environment info and resource fetching --- examples/demo-zk-books/pom.xml | 2 +- .../repositories/BookRepository.java | 2 - .../simple-file-server/src/cli/index.ts | 57 ++++++++++++++++++- .../simple-file-server/src/runtime/index.ts | 4 +- .../remote/RemoteEntityFileStorage.java | 8 +-- 5 files changed, 60 insertions(+), 13 deletions(-) diff --git a/examples/demo-zk-books/pom.xml b/examples/demo-zk-books/pom.xml index c22e5829..23f28cb5 100644 --- a/examples/demo-zk-books/pom.xml +++ b/examples/demo-zk-books/pom.xml @@ -47,7 +47,7 @@ ${maven.build.timestamp} yyyyMMdd - 26.5.0 + 26.5.1 diff --git a/examples/demo-zk-books/src/main/java/mybookstore/repositories/BookRepository.java b/examples/demo-zk-books/src/main/java/mybookstore/repositories/BookRepository.java index 890c90e9..eac9e833 100644 --- a/examples/demo-zk-books/src/main/java/mybookstore/repositories/BookRepository.java +++ b/examples/demo-zk-books/src/main/java/mybookstore/repositories/BookRepository.java @@ -3,9 +3,7 @@ import mybookstore.domain.Book; import org.springframework.cache.annotation.Cacheable; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.rest.core.annotation.RepositoryRestResource; -import tools.dynamia.domain.jpa.JpaCrudServiceRepository; import java.util.Optional; diff --git a/extensions/entity-files/packages/simple-file-server/src/cli/index.ts b/extensions/entity-files/packages/simple-file-server/src/cli/index.ts index 0d6c619e..88308cf9 100644 --- a/extensions/entity-files/packages/simple-file-server/src/cli/index.ts +++ b/extensions/entity-files/packages/simple-file-server/src/cli/index.ts @@ -4,17 +4,18 @@ import { Command } from 'commander' import { createReadStream } from 'node:fs' import { stat } from 'node:fs/promises' import { randomBytes } from 'node:crypto' +import os from 'node:os' import { createRuntime, startServer } from '../runtime/index.js' import { getDataDir } from '../config/config.service.js' import { bashCompletion, zshCompletion, fishCompletion } from './completion.js' -import type { Permission } from '../types/index.js' +import type { Permission, Bucket, Identity } from '../types/index.js' const program = new Command() program .name('sfs') .description('Simple File Server - filesystem-native file server with S3-style API') - .version('26.5.0') + .version('26.5.1') // ────────────────────────────────────────────────────────── // sfs serve @@ -27,12 +28,14 @@ program .option('--data-dir ', 'Data directory', getDataDir()) .option('--log-level ', 'Log level (trace|debug|info|warn|error)', 'info') .action(async (opts) => { - await startServer({ + printEnvInfo() + const runtime = await startServer({ host: opts.host, port: parseInt(opts.port, 10), dataDir: opts.dataDir, logLevel: opts.logLevel, }) + await printServerSummary(runtime) }) // ────────────────────────────────────────────────────────── @@ -369,6 +372,54 @@ Examples: // ────────────────────────────────────────────────────────── // Helpers // ────────────────────────────────────────────────────────── +async function printServerSummary(runtime: Awaited>): Promise { + try { + const [buckets, identities] = await Promise.all([ + runtime.bucketService.list() as Promise, + runtime.identityService.list() as Promise, + ]) + + const bucketLines = buckets.length + ? buckets.map(b => `│ · ${b.name} → ${b.path}`) + : ['│ (none)'] + + const identityLines = identities.length + ? identities.map(id => `│ · ${id.identity} (grants: ${id.grants.map(g => g.bucket).join(', ') || 'none'})`) + : ['│ (none)'] + + const lines = [ + '┌─────────────────────────────────────────────', + '│ Buckets', + '├─────────────────────────────────────────────', + ...bucketLines, + '├─────────────────────────────────────────────', + '│ Identities', + '├─────────────────────────────────────────────', + ...identityLines, + '└─────────────────────────────────────────────', + ] + console.log(lines.join('\n')) + } catch { + // Non-fatal — server is already running + } +} +function printEnvInfo(): void { + const cpus = os.cpus() + const lines = [ + + 'Simple File Server — Environment', + '─────────────────────────────────────────────', + ` OS : ${os.type()} ${os.release()} (${os.platform()}/${os.arch()})`, + ` Node.js : ${process.version}`, + ` V8 : ${process.versions.v8}`, + ` CPUs : ${cpus.length}x ${cpus[0]?.model ?? 'unknown'}`, + ` Memory : ${(os.totalmem() / 1024 / 1024 / 1024).toFixed(1)} GB total`, + ` Hostname : ${os.hostname()}`, + ` User : ${os.userInfo().username}`, + ` PID : ${process.pid}` + ] + console.log(lines.join('\n')) +} function collect(value: string, previous: string[]): string[] { return previous.concat([value]) } diff --git a/extensions/entity-files/packages/simple-file-server/src/runtime/index.ts b/extensions/entity-files/packages/simple-file-server/src/runtime/index.ts index 4ab8e2ac..c34146d4 100644 --- a/extensions/entity-files/packages/simple-file-server/src/runtime/index.ts +++ b/extensions/entity-files/packages/simple-file-server/src/runtime/index.ts @@ -41,7 +41,7 @@ export async function createRuntime(overrides?: Partial): Promise): Promise { +export async function startServer(overrides?: Partial): Promise { const runtime = await createRuntime(overrides) const { config, bucketService, storageService, thumbnailService, identityService, operationalLogger } = runtime @@ -79,5 +79,7 @@ export async function startServer(overrides?: Partial): Promise await operationalLogger.close() process.exit(1) } + + return runtime } diff --git a/extensions/entity-files/sources/core/src/main/java/tools/dynamia/modules/entityfile/remote/RemoteEntityFileStorage.java b/extensions/entity-files/sources/core/src/main/java/tools/dynamia/modules/entityfile/remote/RemoteEntityFileStorage.java index c583a7cf..3fbd4ab7 100644 --- a/extensions/entity-files/sources/core/src/main/java/tools/dynamia/modules/entityfile/remote/RemoteEntityFileStorage.java +++ b/extensions/entity-files/sources/core/src/main/java/tools/dynamia/modules/entityfile/remote/RemoteEntityFileStorage.java @@ -343,16 +343,12 @@ public Resource toThumbnailResource(int width, int height) { */ private Resource fetchResource(String url) { try { - var inputStream = restClient.get() + return restClient.get() .uri(url) .header(HEADER_IDENTITY, identity) .header(HEADER_SECRET, secret) .retrieve() - .body(java.io.InputStream.class); - if (inputStream == null) { - return null; - } - return new InputStreamResource(inputStream); + .body(Resource.class); } catch (Exception e) { return null; }