Commit Graph

28 Commits

Author SHA1 Message Date
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