Skip to main content
All releases
Release Notes

New filters and improved developer experience

New Filter FunctionalityShared UI PackageDynamic OIDC IntegrationImproved Configuration

This release brings new filter features for the map view, a reusable UI package with Storybook, as well as improvements to authentication and configuration.

Cedrik Hoffmann

Lead Developer & Project Lead

In this release, we focused on improving the developer experience and adding new filter features. The frontend was modernized with a new shared UI package, authentication was made more flexible, and configuration was simplified.

New Filter Features

The map view was extended with powerful filter features:

  • Planting-year filter: A new slider allows filtering trees by planting year. The available years are determined dynamically from the existing data, so only relevant time ranges are shown.
  • CRUD selection filter: When selecting objects on the map (for example when assigning trees to clusters), the results can now be filtered. This significantly eases working with large datasets.
  • Cluster membership filter: The filter for cluster membership was fixed and now works reliably.

Shared UI Package

A significant step toward better code organization and reusability:

  • @green-ecolution/ui: A new standalone package now contains all the basic UI components. These can be used across projects.
  • Storybook: All components are documented in Storybook and can be viewed and tested in isolation.
  • Tailwind v4: The migration to Tailwind CSS v4 brings improved performance and new styling options.

Authentication & Security

Authentication was made more flexible and robust:

  • Dynamic JWKS: The public keys for token validation are now fetched dynamically from the JWKS endpoint of the OIDC provider. No restart is required anymore when keys are rotated.
  • Optional authentication: Certain endpoints can now be configured to be reachable even without a valid token. This enables public read access while still protecting write operations.
  • Improved token handling: The frontend now renews tokens proactively before they expire. This prevents interrupted sessions during longer use.

Configuration

Configuration was simplified and made more flexible:

  • Environment variables as the primary source: The application can now be fully configured via environment variables. The YAML configuration file is optional.
  • Container-friendly: This change eases deployment in container environments such as Docker and Kubernetes, where configuration is typically done via environment variables.

Bug Fixes

  • Vehicle seed data: The test data for vehicles was reworked with realistic values.
  • NaN entity ID: A bug was fixed where invalid entity IDs (NaN) occurred after a page refresh.
  • Auth token refresh: Token handling was improved to avoid authentication problems during longer sessions.

Refactoring

  • Zustand store pattern: The state management stores were switched to the modern StateCreator pattern, which improves testability and maintainability.
  • Form draft storage: Form drafts are now stored in the Zustand store instead of SessionStorage, which enables more consistent behavior.
  • API documentation: The Swagger documentation was cleaned up and improved.

Documentation

  • CONTRIBUTING.md: A new file documents the contribution process for new developers. It contains information on coding standards, the branching model, and the review process.

Outlook

With this release, we laid the foundation for faster feature development. The shared UI package and the improved configuration make the project more accessible for new contributions.

Feedback and bug reports are always welcome on GitHub.

CHANGELOG.md - v0.1.2
$
feat(frontend): Filter functionality for map CRUD selection pages
#637
$
feat(frontend): Slider component for planting-year filter with dynamic years
#636
$
feat(backend): Unauthorized requests can pass the JWT middleware (configurable)
#634
$
feat(backend): Dynamic OIDC public key fetching from the JWKS endpoint
#595
$
feat(frontend): UI components migrated to a shared UI package with Tailwind v4
#608
$
feat(frontend): New @green-ecolution/ui package with Storybook
#591
$
feat(backend): Config file optional, environment variables as the primary source
#594
$
fix(backend): Vehicle seed data reworked with realistic values
#635
$
fix(frontend): Map filter for cluster membership fixed
#628
$
fix(frontend): NaN entity ID on page refresh fixed
#619
$
fix(frontend): Auth token handling improved with proactive refresh
#618
$
refactor(frontend): SessionStorage replaced by Zustand store for form drafts
#616
$
refactor(frontend): Zustand store modernized with the StateCreator pattern
#605
$
refactor(backend): Swagger API documentation cleaned up and improved
#593
$
refactor(backend): Reliability of dynamic JWKS fetching improved
#629
$
docs(project): CONTRIBUTING.md added

Found an error or have feedback on this release? Create an issue →