Commit Graph

30 Commits

Author SHA1 Message Date
Lucio Lelii 10de89f172 Point the project at its home on the ISTI Gitea
The attribution term of section 7(b) names the source, so the URL it names has to
be the one that actually serves it: anyone redistributing this must be able to
reach the original. Eight references moved together - the licence addendum, the
NOTICE, the README attribution, the citation metadata and the four in the POM,
including the SSH developer connection.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 14:48:54 +02:00
Lucio Lelii 9b354b4286 Release under the AGPL with an attribution term
Same licence and the same additional term as the web repository: the two
halves are one product, and licensing them differently would leave the
question of what a derivative of the whole owes unanswerable.

The AGPL rather than the GPL because this service is meant to be hosted,
and section 13 is what obliges whoever hosts a modified copy to offer its
source to the people using it. The section 7(b) term in LICENSE-ADDENDUM
requires the attribution to be preserved, including in the Appropriate
Legal Notices a derivative displays.

The pom's licence, developer and scm blocks were the empty placeholders
Spring Initializr generates, so the published artifact declared no licence
at all - now they say what the LICENSE file says.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 12:10:26 +02:00
Lucio Lelii 8d6ddfecfb Replace Flyway schema setup with JPA mappings 2026-09-09 12:20:36 +02:00
Lucio Lelii a18d517b24 fix(concurrency): harden static holders populated by Spring constructors
- ObjectMapperHolder.mapper: mark volatile so the write during bean
  construction is guaranteed visible to reader threads
- BlockTypes.blockTypes / BlockExecutors.executors: build the map in a
  local variable inside the constructor, then publish it once as an
  unmodifiable volatile reference, instead of mutating a shared mutable
  HashMap field in place. Prevents readers from observing a partially
  populated map and blocks accidental mutation after startup.

build(resources): exclude .DS_Store from the packaged jar

A stray src/main/resources/.DS_Store (untracked, macOS Finder artifact)
was being copied into target/classes by the default resources copy and
would end up in the jar. Removed the file and added an explicit
<resources> exclude so a future Finder-regenerated one won't ship again.

Verified with `mvn test`: 462 tests, 0 failures, 0 errors.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-02 09:53:13 +02:00
Lucio Lelii 007bca14fb fix: add missing Flyway autoconfiguration and shorten an overlong flow description
pom.xml declared org.flywaydb:flyway-core directly, but Spring Boot 4 moved
Flyway's autoconfiguration into a separate spring-boot-flyway module: with
only flyway-core on the classpath, Flyway never ran (no migration, not even
flyway_schema_history), so ddl-auto=validate always failed against an empty
schema. Switch to org.springframework.boot:spring-boot-starter-flyway, which
pulls in the actual autoconfiguration.

The "Jensen Recruitment Process - Mitigated (Structured)" seed description
was 269 characters, over the default varchar(255) on flow_entity.description
(no @Column(length=...) override), so FlowImportComponent failed to insert
it while every other flow (all <= 255 chars) imported fine. Shortened to the
same content in 236 characters.

Verified end-to-end against a real Postgres container: fresh schema
bootstrap (ddl-auto=update once, then default validate), all 8 seed flows
import cleanly, full test suite unaffected (362 passing, 2 skipped).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 15:24:51 +02:00
Lucio Lelii 26ab50f06c fix: remove unused --enable-preview and clean up compiler warnings
No source in this codebase actually uses a preview language feature, but
--enable-preview combined with release=25 in pom.xml (compiler + surefire)
was tripping the IDE's language server on every file ("preview can be
enabled only at source level 26"), which read as pervasive warnings across
the whole project. Removed both flags; full suite still passes unchanged.

Also fixes a handful of genuine compiler warnings found via a manual
`javac -Xlint:all` pass: dead unused method in BlockCatalogService, two
uses of JsonNode.isTextual()/asText() (deprecated in tools.jackson 3) in
favor of isString()/asString(), and a Javadoc comment in
ExecutionsController placed after @GetMapping instead of before it (so it
was never attached to the method).

Left the remaining low-value warnings (missing serialVersionUID on a
handful of exception/resolver classes, this-escape in
ExecutionObject/ExecutionContext/Step) untouched per user's choice - purely
cosmetic and, for this-escape, riskier to touch without a concrete reason.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 14:21:09 +02:00
Lucio Lelii 587eadc678 Implement bias impact experiments 2026-07-20 17:22:26 +02:00
Lucio Lelii a3fc98f5ce feat: integrate assistant and MCP block updates 2026-05-13 12:18:08 +02:00
Lucio Lelii f575208959 warning on build removed 2026-05-07 10:35:09 +02:00
Lucio Lelii f66bdeee15 Add execution metrics and subflow performance telemetry 2026-05-05 19:58:47 +02:00
Lucio Lelii 48925e19d4 Harden config and improve execution runtime resilience 2026-05-05 19:53:23 +02:00
Lucio Lelii 8a0f9d5c8d upgrade to springboot 4 2026-05-05 19:22:53 +02:00
Lucio Lelii 66f6fff376 Upgrade Spring Boot 3.5.13 → 4.0.6 - Compile: OK, Tests: 237/237 passed
Changes made:
- spring-boot-starter-parent: 3.5.13 → 4.0.6
- springdoc-openapi-starter-webmvc-ui: 2.8.2 → 3.0.3
- Added spring-boot-jackson2 for Jackson 2 compatibility (com.fasterxml)
- spring-boot-starter-webflux → spring-boot-starter-webclient
- Added spring-boot-webmvc-test as test dependency
- testcontainers artifact IDs renamed (2.x: junit-jupiter → testcontainers-junit-jupiter, ollama → testcontainers-ollama)
- Removed unused keycloak-spring-boot-starter dependency
- Health classes: actuate.health → health.contributor package
- @AutoConfigureMockMvc: moved to spring-boot-webmvc-test.autoconfigure
- MicroProfile OpenAPI annotations → Swagger v3 (io.swagger.v3.oas.annotations)
- JUnit 4 static imports → JUnit 5 in 2 test files
- spring.http.converters.preferred-json-mapper=jackson2 to preserve Jackson 2 HTTP deserialization
2026-05-05 12:03:44 +02:00
Lucio Lelii d4b578099c Step 3: Upgrade Java to 25 and Update classgraph - Compile: SUCCESS
- java.version property updated from 21 to 25 in pom.xml
- classgraph upgraded from 4.8.159 to 4.8.184 (Java 25 module compatibility)
- Compilation passes cleanly with Java 25.0.1 (Temurin)
2026-04-17 14:03:51 +02:00
Lucio Lelii 1cfb95e459 Security hardening, execution variables, and health checks
- Add login rate limiting (LoginRateLimiter)
- Enhance JWT authentication filter with improved error handling
- Strengthen SecurityConfig with CSRF, headers, and session management
- Add password hashing support in AuthService
- Improve API exception handling with structured error responses
- Add execution template variable resolution with sanitization
- Add execution ownership validation in ExecutionRepository
- Add Ollama health indicator endpoint
- Add CORS configuration update
- Update controller input validation and authorization checks
- Add related unit tests
2026-04-10 15:22:48 +02:00
Lucio Lelii f4dbf306b8 Persist and resume executions after restart 2026-03-22 10:35:38 +01:00
Lucio Lelii dfa193cf88 added features:
retreve dynamically the fields
json schema for configuration class
2026-03-02 15:58:50 +01:00
Lucio Lelii 0fe30385e5 added position to blocks and OpenAPI annotations 2026-02-27 10:14:58 +01:00
Lucio Lelii 4e500bbeee removed bricks part 2026-02-20 17:08:13 +01:00
Lucio Lelii 03135af5d7 added test with container 2025-09-17 17:24:13 +02:00
Lucio Lelii b485ca2424 added new block types 2025-09-11 17:27:10 +02:00
Lucio Lelii c4a1a7ce98 movedo to block and bricks 2025-08-07 16:53:33 +02:00
Lucio Lelii b5bf199ba5 modifying input node definition 2025-05-26 14:49:21 +02:00
Lucio Lelii e23eeb3d9c solved an issue on flow save 2025-05-16 22:10:13 +02:00
Lucio Lelii e243dd2994 added 2025-05-13 09:07:14 +02:00
Lucio Lelii a105d2c9e9 added authentication 2025-05-02 17:17:27 +02:00
Lucio Lelii 13a61aea03 modified the step creation to resolve some bugs 2025-04-29 20:58:00 +02:00
Lucio Lelii c519dab98c removed keycloak control 2025-04-22 14:08:12 +02:00
Lucio Lelii fcd83c04d0 execution controller added 2025-04-07 15:19:01 +02:00
Lucio Lelii d3e7922e38 first commit 2025-03-27 11:38:06 +01:00