Go to file
Lucio Lelii c472c80674 Add pluggable storage types: S3-compatible and PostgreSQL
The groundwork for a Storage node: a StorageType SPI collected like the
LLM providers, with two types - an S3-compatible object store (MinIO,
AWS, Ceph) on the MinIO client, and PostgreSQL spoken to in SQL.

Every type answers the same four things - a template to write to, a
query to read with, a script to prepare, the shapes a read comes back
in - and checks them itself, so the node stays generic.

- S3: keys and globs (pippo*, reports/**.json) under an instance root
  and an optional per-execution prefix that a key cannot climb out of.
- PostgreSQL: placeholders are bound, never spliced in, and refused
  inside literals or comments; reads run READ ONLY; one statement only,
  checked here because pgjdbc splits and runs 'INSERT ...; DROP ...';
  the JDBC URL and driver properties are built from checked fields.
- storages.json holds the operator's instances, checked at startup;
  /storage/types and /storage/instances expose them without settings.
- A person's own connection goes through a storage endpoint guard
  (app.storage.endpoint.*), like an LLM endpoint.

Tested against real MinIO and PostgreSQL with Testcontainers.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 11:35:47 +02:00
.mvn/wrapper upgrade to springboot 4 2026-05-05 19:22:53 +02:00
src Add pluggable storage types: S3-compatible and PostgreSQL 2026-09-28 11:35:47 +02:00
.gitattributes first commit 2025-03-27 11:38:06 +01:00
.gitignore Remove the internal host and the working notes from the published source 2026-09-21 14:22:05 +02:00
CITATION.cff Point the project at its home on the ISTI Gitea 2026-09-21 14:48:54 +02:00
Dockerfile Harden Maven downloads in Docker build 2026-09-10 11:34:39 +02:00
LICENSE Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
LICENSE-ADDENDUM Point the project at its home on the ISTI Gitea 2026-09-21 14:48:54 +02:00
NOTICE Point the project at its home on the ISTI Gitea 2026-09-21 14:48:54 +02:00
README.md Point the project at its home on the ISTI Gitea 2026-09-21 14:48:54 +02:00
mvnw first commit 2025-03-27 11:38:06 +01:00
mvnw.cmd first commit 2025-03-27 11:38:06 +01:00
ollama-preloaded-docker image for test with ollama added 2025-09-29 17:00:57 +02:00
pom.xml Add pluggable storage types: S3-compatible and PostgreSQL 2026-09-28 11:35:47 +02:00
run_service.sh Replace Flyway schema setup with JPA mappings 2026-09-09 12:20:36 +02:00

README.md

RUN LOCAL SERVICE

./run_service.sh

BUILD DOCKER IMAGE

docker buildx build –platform linux/amd64,linux/arm64 -t luciolelii/humainflow:latest . –push

License

Copyright (C) 2025-2026 Lucio Lelii — ISTI-CNR.

HumAIn Flow is released under the GNU Affero General Public License v3.0 or later (LICENSE), with an additional attribution term under section 7(b) of that license (LICENSE-ADDENDUM).

In practice this means:

  • you may use, study, modify and redistribute it freely;

  • if you run a modified version as a network service, you must offer its source to the users of that service;

  • any work based on it must keep the attribution below, both in the source and where the interface shows its legal notices:

    Based on HumAIn Flow, originally developed by Lucio Lelii (ISTI-CNR) — https://gitea-s2i2s.isti.cnr.it/lelii/humainflow-service

If you use HumAIn Flow in academic work, please cite it — see CITATION.cff.