New filters and improved developer experience
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.
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.
Activating sensors via QR code and assigning them to trees
Cleanup and stabilization
Found an error or have feedback on this release? Create an issue →