Chronivaro 0.4.0
Changes since v0.3.0
- [Project] Release 0.4.0 (105ce3b)
- [Minor] Disable unique versioning in Maven JAR configuration (03908ad)
- [New] Add CSV holiday import functionality (d02fe24)
- [Fix] Update locale in configuration to de-CH for dev environment (fa0a5e5)
- [New] Add VersionView and related API functionality (15300ed)
- [Fix] Update weekly target minutes to 2400 across the app (f81a3d0)
- [New] Add responsive styling for #audit-log-view (392111d)
- [New] Enhance modal styling and improve date parsing (bc41906)
- [New] Add joinDate and exitDate columns to EmployeesView (acba571)
- [New] Add DatePicker utility and enhance date validation (c0749ca)
- [New] Add on-call filters and i18n translations (752327d)
- [Fix] Update default on-call times and confirmation dialog (2d55c58)
- [Fix] Update parameter names for on-call period dates (1024a3e)
- [New] Migrate date inputs to text format with validation (1a9c9b9)
- [New] Enhance calendar navigation with month picker and modals (2aef1a7)
- [New] Add additional user configurations to PrivilegeUsers.xml (ce6129c)
- [New] Add instructions for GenerateSampleDataJob usage (dbc301a)
- [New] Add StrolchJob resource filtering to build script (a27ec14)
- [New] Add filtering for StrolchJob resources in Model.xml (0e6a563)
- [New] Add GenerateSampleDataJob resource to model (3184f71)
- [New] Add PostInitializer component to configuration (6d7d35c)
- [New] Add GenerateSampleDataJob for initial data creation (0e258b3)
- [New] Add Administrator role to PrivilegeUsers.xml (2c9a9f2)
- [New] Update privilege policies for agent role (52e8694)
- [New] Mark backlog tasks as completed (3472242)
- [New] Add on-call period management to absence calendar (5b47128)
- [New] Add interactive employee absence calendar (75f5557)
- [New] Add absence calendar with role-based filters and UI (83f6e3e)
- [New] Add
createdByparameter to Templates.xml (7a109aa) - [New] Add
createdByfield to OpenAPI specs (4ab63f9) - [New] Add absence entry on behalf of employees by HR/Supervisors (bc120ac)
- [New] Add ability to manage absences for other employees (8760a87)
- [New] Update backlog and specifications for absence features (24513be)
- [Fix] Allow correcting start time of running timers (e7c9a8d)
- [Fix] Allow editing running timers without end time (79c959c)
- [New] Add validation and formatting for office hours (415421f)
- [Project] Next development version 0.4.0-SNAPSHOT (35b8ed4)
🔄 Runtime Upgrade Instructions (v0.3.0 → HEAD)
The following files in the runtime directory have been modified and require review or migration when upgrading an existing instance:
runtime/config/PrivilegeRoles.xml: Role definitions and service/search privilege permissions.runtime/config/PrivilegeUsers.xml: Default user definitions and administrative accounts.runtime/config/StrolchConfiguration.xml: Strolch agent and component configuration parameters.runtime/data/Model.xml: Default system configuration resources and initial master data.runtime/data/Templates.xml: Resource, Order, and Activity model templates and element definitions.
Runtime Changes Diff
Review and apply the relevant diffs to your deployment environment:
# Diff for runtime/config/PrivilegeRoles.xml
diff --git a/runtime/config/PrivilegeRoles.xml b/runtime/config/PrivilegeRoles.xml
index 50d97fb..3088d55 100644
--- a/runtime/config/PrivilegeRoles.xml
+++ b/runtime/config/PrivilegeRoles.xml
@@ -175,27 +175,30 @@
</Role>
<Role name="agent">
+ <Privilege name="li.strolch.job.StrolchJobsHandler" policy="DefaultPrivilege">
+ <AllAllowed>true</AllAllowed>
+ </Privilege>
<Privilege name="PrivilegeAction" policy="DefaultPrivilege">
<Allow>GetCertificates</Allow>
<Allow>Persist</Allow>
<Allow>PersistSessions</Allow>
</Privilege>
- <Privilege name="PrivilegeAddUser" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeAddUser" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
- <Privilege name="PrivilegeGetUser" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeGetUser" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
- <Privilege name="PrivilegeGetUserPrivileges" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeGetUserPrivileges" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
- <Privilege name="PrivilegeGetGroupPrivileges" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeGetGroupPrivileges" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
- <Privilege name="PrivilegeModifyUser" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeModifyUser" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
- <Privilege name="PrivilegeRemoveUser" policy="DefaultPrivilege">
+ <Privilege name="PrivilegeRemoveUser" policy="UserAccessPrivilege">
<AllAllowed>true</AllAllowed>
</Privilege>
<Privilege name="li.strolch.privilege.handler.SystemAction" policy="DefaultPrivilege"># Diff for runtime/config/PrivilegeUsers.xml
diff --git a/runtime/config/PrivilegeUsers.xml b/runtime/config/PrivilegeUsers.xml
index a70fd0a..ecc8ba8 100644
--- a/runtime/config/PrivilegeUsers.xml
+++ b/runtime/config/PrivilegeUsers.xml
@@ -1,17 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<Users>
+ <User userId="668338713749" username="alice.smith">
+ <Firstname>Alice</Firstname>
+ <Lastname>Smith</Lastname>
+ <State>ENABLED</State>
+ <Locale>de</Locale>
+ <Roles>
+ <Role>Employee</Role>
+ <Role>ModelAccessor</Role>
+ </Roles>
+ <Properties>
+ <Property name="email" value="alice@example.com"/>
+ <Property name="organisation" value="MyCompany"/>
+ </Properties>
+ </User>
<User userId="agent" username="agent">
<Firstname>Strolch Agent</Firstname>
<Lastname>System User</Lastname>
<State>SYSTEM</State>
<Locale>de</Locale>
<Roles>
+ <Role>Administrator</Role>
<Role>agent</Role>
</Roles>
<Properties>
<Property name="organisation" value="MyCompany"/>
</Properties>
</User>
+ <User userId="668338713763" username="carol.white">
+ <Firstname>Carol</Firstname>
+ <Lastname>White</Lastname>
+ <State>ENABLED</State>
+ <Locale>de</Locale>
+ <Roles>
+ <Role>Employee</Role>
+ <Role>ModelAccessor</Role>
+ </Roles>
+ <Properties>
+ <Property name="email" value="carol@example.com"/>
+ <Property name="organisation" value="MyCompany"/>
+ </Properties>
+ </User>
<User userId="666954056572" username="bob" password="$PBKDF2WithHmacSHA512,10000,256$6cb2cd8a78184ebaeb56379cbe4d15e5a7fb68fca9d73f277c7f285af5b63556$e0143ed95ba9b5a4c20fa50193812a967c6fbde35a56c720f310e2563b53427e">
<Firstname>Bob</Firstname>
<Lastname>Someone</Lastname>
@@ -31,6 +60,20 @@
<LastPasswordChange>2026-08-22T17:52:57.068+02:00</LastPasswordChange>
</History>
</User>
+ <User userId="668338713770" username="david.miller">
+ <Firstname>David</Firstname>
+ <Lastname>Miller</Lastname>
+ <State>ENABLED</State>
+ <Locale>de</Locale>
+ <Roles>
+ <Role>Employee</Role>
+ <Role>ModelAccessor</Role>
+ </Roles>
+ <Properties>
+ <Property name="email" value="david@example.com"/>
+ <Property name="organisation" value="MyCompany"/>
+ </Properties>
+ </User>
<User userId="1" username="admin" password="$PBKDF2WithHmacSHA512,10000,256$c295b976cb1ff44b92b0e7f3e2851dbd5c396bed28ae1b9ec6f7cd0aa678b51e$c32469792e77aa52b5c18b279c344ce1c692edb2eb8153a3fa295b333eeafe64">
<Firstname>Admin</Firstname>
<Lastname>Admin</Lastname>
@@ -51,6 +94,20 @@
<LastPasswordChange>2026-08-22T17:49:00.631+02:00</LastPasswordChange>
</History>
</User>
+ <User userId="668338713777" username="emma.watson">
+ <Firstname>Emma</Firstname>
+ <Lastname>Watson</Lastname>
+ <State>ENABLED</State>
+ <Locale>de</Locale>
+ <Roles>
+ <Role>Employee</Role>
+ <Role>ModelAccessor</Role>
+ </Roles>
+ <Properties>
+ <Property name="email" value="emma@example.com"/>
+ <Property name="organisation" value="MyCompany"/>
+ </Properties>
+ </User>
<User userId="666872618952" username="jill" password="$PBKDF2WithHmacSHA512,10000,256$269f324b259059d1fb867ac13b9a9c7de9c5f3bfad4ea9784f65a2ea6a53395e$deb672b37e251022a575c651f2538e943e7a6e9979ddcb1b4ddd01043713ff53">
<Firstname>Jill</Firstname>
<Lastname>Someone</Lastname>
@@ -70,4 +127,18 @@
<LastPasswordChange>2026-08-22T17:51:20.305+02:00</LastPasswordChange>
</History>
</User>
+ <User userId="668338713756" username="bob.jones">
+ <Firstname>Bob</Firstname>
+ <Lastname>Jones</Lastname>
+ <State>ENABLED</State>
+ <Locale>de</Locale>
+ <Roles>
+ <Role>Employee</Role>
+ <Role>ModelAccessor</Role>
+ </Roles>
+ <Properties>
+ <Property name="email" value="bob@example.com"/>
+ <Property name="organisation" value="MyCompany"/>
+ </Properties>
+ </User>
</Users># Diff for runtime/config/StrolchConfiguration.xml
diff --git a/runtime/config/StrolchConfiguration.xml b/runtime/config/StrolchConfiguration.xml
index 22658c3..d567559 100644
--- a/runtime/config/StrolchConfiguration.xml
+++ b/runtime/config/StrolchConfiguration.xml
@@ -3,7 +3,7 @@
<env id="dev">
<Runtime>
<Properties>
- <locale>en_CH</locale>
+ <locale>de-CH</locale>
<timezone>Europe/Zurich</timezone>
</Properties>
</Runtime>
@@ -107,5 +107,12 @@
<impl>li.strolch.job.StrolchJobsHandler</impl>
<depends>RealmHandler</depends>
</Component>
+
+ <Component>
+ <name>PostInitializer</name>
+ <api>li.strolch.agent.api.PostInitializer</api>
+ <impl>ch.eitchnet.chronivaro.core.handler.PostInitializer</impl>
+ <depends>StrolchJobsHandler</depends>
+ </Component>
</env>
</StrolchConfiguration># Diff for runtime/data/Model.xml
diff --git a/runtime/data/Model.xml b/runtime/data/Model.xml
index 4050fce..868f630 100644
--- a/runtime/data/Model.xml
+++ b/runtime/data/Model.xml
@@ -18,7 +18,7 @@
<Resource Id="configuration" Name="Global Configuration" Type="GlobalConfiguration">
<ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
- <Parameter Id="weeklyTargetMinutes" Name="Global Weekly Target Minutes" Type="Integer" Value="2520"/>
+ <Parameter Id="weeklyTargetMinutes" Name="Global Weekly Target Minutes" Type="Integer" Value="2400"/>
<Parameter Id="annualVacationDays" Name="Annual Vacation Days" Type="Integer" Value="25"/>
<Parameter Id="minutesPerVacationDay" Name="Minutes Per Vacation Day" Type="Integer" Value="480"/>
<Parameter Id="vacationAbsenceTypeCode" Name="Vacation Absence Type Code" Type="String" Value="VACATION"/>
@@ -181,4 +181,11 @@
</ParameterBag>
</Resource>
+ <Resource Id="GenerateSampleDataJob" Name="GenerateSampleDataJob" Type="StrolchJob">
+ <ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
+ <Parameter Id="className" Name="Class Name" Type="String" Value="ch.eitchnet.chronivaro.core.jobs.GenerateSampleDataJob"/>
+ <Parameter Id="mode" Name="Job Mode" Type="String" Interpretation="Enumeration" Uom="JobMode" Value="Manual"/>
+ </ParameterBag>
+ </Resource>
+
</StrolchModel># Diff for runtime/data/Templates.xml
diff --git a/runtime/data/Templates.xml b/runtime/data/Templates.xml
index 2753c98..7f0c013 100644
--- a/runtime/data/Templates.xml
+++ b/runtime/data/Templates.xml
@@ -90,6 +90,7 @@
<Parameter Id="minutes" Name="Minutes" Type="Integer" Value="0"/>
<Parameter Id="comment" Name="Comment" Type="String" Value=""/>
<Parameter Id="state" Name="State" Type="String" Value="DRAFT"/>
+ <Parameter Id="createdBy" Name="Created By" Type="String" Value=""/>
</ParameterBag>
<ParameterBag Id="relations" Name="Relations" Type="Relations">
<Parameter Id="employee" Name="Employee" Type="String" Interpretation="Resource-Ref" Uom="Employee" Value=""/>
@@ -192,7 +193,7 @@
<Resource Id="GlobalConfiguration" Name="Template Global Configuration" Type="Template">
<ParameterBag Id="parameters" Name="Parameters" Type="Parameters">
- <Parameter Id="weeklyTargetMinutes" Name="Global Weekly Target Minutes" Type="Integer" Value="2520"/>
+ <Parameter Id="weeklyTargetMinutes" Name="Global Weekly Target Minutes" Type="Integer" Value="2400"/>
<Parameter Id="annualVacationDays" Name="Annual Vacation Days" Type="Integer" Value="25"/>
<Parameter Id="minutesPerVacationDay" Name="Minutes Per Vacation Day" Type="Integer" Value="480"/>
<Parameter Id="vacationAbsenceTypeCode" Name="Vacation Absence Type Code" Type="String" Value="VACATION"/>📦 Distribution Artifacts
| File | Description |
|---|---|
chronivaro-0.4.0.tar.gz |
Standalone application distribution archive (executable Chronivaro JAR and lib/ dependencies) |
chronivaro-0.4.0.tar.gz.asc |
GPG ASCII-armored detached signature |
runtime-0.4.0.tar.gz |
Sanitized Strolch runtime distribution archive |
runtime-0.4.0.tar.gz.asc |
GPG ASCII-armored detached signature |
runtime-upgrade-v0.3.0-to-v0.4.0.patch |
Unified diff patch to upgrade runtime/ configuration and templates from v0.3.0 |
runtime-upgrade-v0.3.0-to-v0.4.0.patch.asc |
GPG ASCII-armored detached signature |
SHA256SUMS.txt |
SHA-256 verification checksums |
SHA256SUMS.txt.asc |
GPG ASCII-armored detached signature |