Changelog

Version history for the ConformaESG Integration Service API.

v1.2.0 — 2026-04-02

New Features

Textile module:

  • New textile Maven module with three specialized product types: YarnProduct, FiberProduct, FabricProduct
  • All textile products extend BaseTextileProductBaseProduct inheritance hierarchy
  • TextileCategory enum: YARN, FIBER, FABRIC (auto-set via @PrePersist)
  • YarnCountUnit enum: NE, NM, TEX, DTEX, DENIER
  • REST endpoints: /api/v1/textile/yarns, /api/v1/textile/fibers, /api/v1/textile/fabrics
  • Full CRUD + bulk upsert support for all three types

Supplier certifications:

  • SupplierCertification entity with digital signature tracking and verification status
  • REST endpoints at /api/v1/supplier-certifications
  • CRUD: create, read, update, delete certifications per supplier
  • Cascade delete when parent supplier is removed

Chemical purchases:

  • ChemicalPurchaseRecord entity for tracking chemical product procurement
  • REST endpoints at /api/v1/chemical-purchases
  • Full CRUD with cost, delivery, batch, quality, and warehouse tracking
  • Filter by companyId, chemicalProductId, supplierId

Entity metadata:

  • metadata JSON field added to all core entities (Supplier, Products, Purchases, Traceability, Chemicals)
  • Free-form Map<String, Object> stored as jsonb in PostgreSQL
  • Pass arbitrary key-value pairs for custom attributes without schema changes

Supplier entity expansion:

  • Full address fields: address, city, zipCode, province
  • Geolocation: latitude, longitude
  • Contact information: contactName, contactEmail, contactPhone
  • activityType, companyId, userId fields
  • customCategory for user-defined supplier categories

Chemical module improvements:

  • ChemicalCompliance entity (one-to-one): REACH, ZDHC, GOTS, GRS, SVHC, PFAS tracking
  • ChemicalSupplier entity (one-to-one): supplier details per chemical product
  • Enhanced CAS search with partial flag for substring matching
  • DELETE endpoint archives (soft delete) instead of hard delete
  • List endpoint filters: category, complianceStatus, pfasContent, search

Traceability module improvements:

  • TraceabilityRecord as lightweight tracking + ProductTraceability as detailed aggregate
  • Additional lookup endpoints: /product/{productId}, /batch/{batchNumber}
  • ProcessingStage under /api/v1/product/traceability with nested routes
  • GeolocationService for Haversine distance calculation
  • EmissionCalculationService with configurable factors per transport mode
  • Automatic totals recalculation via ProductTraceabilityCalculationService

Changes

  • API prefix migration: all endpoints now use /api/v1/ prefix
  • Purchase records: GET /{id}/status-changes endpoint for audit trail access
  • BaseProduct expanded with certification booleans, organicContentPercent, sustainabilityNotes, technicalSpecs

v1.1.0 — 2026-02-23

New Features

Purchase module (CON-55, CON-56, CON-58):

  • Purchase status lifecycle: ORDERED → IN_TRANSIT → DELIVERED / CANCELLED
  • PurchaseStatusChangeLog entity — automatic audit trail on every status transition
  • Document tracking fields: purchase_order_number, invoice_number, ddt_number, transaction_certificate_number, batch_number
  • Delivery tracking: delivery_date, expected_delivery_date, delivery_notes
  • GET /api/v1/purchases?purchase_status= — list endpoint with optional status filter
  • Unique constraint: (supplier_id, batch_number) enforced at DB level

Product module (CON-49, CON-51):

  • product_origin_country and raw_material_origin_country — ISO 3166-1 alpha-2 validated
  • quantity_available (Double ≥ 0) — current stock quantity
  • lead_time_days (Integer ≥ 0) — procurement lead time
  • UnitOfMeasure enum: METERS, KG, PIECES, ROLLS (default: KG)

Changes

  • Supplier list default page size changed 20 → 50 (max 250)
  • Supplier list: size query param now optional (null = server default)
  • New supplier list filters: complianceStatus, search, sortBy, sortOrder

v1.0.1 — 2026-02-23

New Features

  • GET /api/v1/suppliers — full paginated list with filters, full-text search, and sort (CON-48)
  • GET /api/v1/chemicals/search?casNumber= — CAS number search endpoint (CON-77)

Changes

  • Supplier GET /{id} now uses shared validateApiKey() helper
  • Traceability service layer business logic implemented (CON-68)

v1.0.0 — 2026-02-10

Initial release:

  • Supplier CRUD + bulk upsert
  • SupplierProduct + CompanyProduct (inheritance model) CRUD + bulk upsert
  • SupplierPurchaseRecord CRUD + bulk upsert + CO₂ auto-calculation
  • Chemical products CRUD + bulk upsert
  • ProductTraceability + ProcessingStage with auto totals recalculation
  • Quarkus Dev Services (zero-config PostgreSQL) + H2 for unit tests
  • OpenAPI / Swagger UI