{"id":37019838,"url":"https://github.com/focus-shift/urlaubsverwaltung-extension-api","last_synced_at":"2026-01-14T02:13:06.638Z","repository":{"id":108672568,"uuid":"588374318","full_name":"focus-shift/urlaubsverwaltung-extension-api","owner":"focus-shift","description":"Urlaubsverwaltung Extension Java API","archived":false,"fork":false,"pushed_at":"2025-12-10T21:46:50.000Z","size":410,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-11T08:54:48.046Z","etag":null,"topics":["java","urlaubsverwaltung"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/focus-shift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-13T00:45:28.000Z","updated_at":"2025-12-10T21:46:53.000Z","dependencies_parsed_at":"2023-11-14T13:26:51.815Z","dependency_job_id":"b719ed2e-836e-4aee-ae09-b4915b0ed45f","html_url":"https://github.com/focus-shift/urlaubsverwaltung-extension-api","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/focus-shift/urlaubsverwaltung-extension-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/focus-shift%2Furlaubsverwaltung-extension-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/focus-shift%2Furlaubsverwaltung-extension-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/focus-shift%2Furlaubsverwaltung-extension-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/focus-shift%2Furlaubsverwaltung-extension-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/focus-shift","download_url":"https://codeload.github.com/focus-shift/urlaubsverwaltung-extension-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/focus-shift%2Furlaubsverwaltung-extension-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","urlaubsverwaltung"],"created_at":"2026-01-14T02:13:06.006Z","updated_at":"2026-01-14T02:13:06.614Z","avatar_url":"https://github.com/focus-shift.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Urlaubsverwaltung Extension Java API\n\nThis project provides DTOs and service interfaces to write own extensions for [Urlaubsverwaltung](https://github.com/urlaubsverwaltung/urlaubsverwaltung).\n\n\n## Requirements\n\nThis project requires Java 21 compiler.\n\n\n## Usage\n\nInclude Urlaubsverwaltung Extension Java API to your project:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ede.focus-shift.urlaubsverwaltung.extension.api\u003c/groupId\u003e\n    \u003cartifactId\u003eservice\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nAfter that, create a java class and use one of the *ServiceExtension classes like `PersonServiceExtension`:\n\n```java\npackage my.custom.package;\n\nimport java.util.Set;\nimport java.util.UUID;\n\npublic class PersonServiceExtensionDemo {\n\n    private final PersonServiceExtension personServiceExtension;\n\n    public PersonServiceExtensionTest(PersonServiceExtension personServiceExtension) {\n        this.personServiceExtension = personServiceExtension;\n    }\n\n    void doSomething() {\n        PersonDTO myPerson = PersonDTO.builder()\n                .firstName(\"Marlene\")\n                .lastName(\"Muster\")\n                .username(UUID.randomUUID().toString())\n                .email(\"office@example.org\")\n                .permissions(Set.of(RoleDTO.OFFICE))\n                .build();\n\n        PersonDTO createdPerson = personServiceExtension.create(myPerson);\n    }\n}\n```\n\nPackage your extension and run Urlaubsverwaltung with [PropertiesLauncher](https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html#appendix.executable-jar.property-launcher)\n\n\n## Implementation Status\n\nThe following extension points are provided:\n\n* [ ] absence\n* [ ] account\n* [x] application\n* [ ] department\n* [ ] overtime\n* [x] person\n* [ ] publicholiday\n* [ ] settings\n* [x] sicknote\n* [ ] user\n* [ ] workingtime\n\n## Compatibility\n\n| Extension API Version | Urlaubsverwaltung Version | Java Version |\n|-----------------------|---------------------------|--------------|\n| 3.x.x                 | 5.x.x                     | 21.x         |\n| 2.x.x                 | 5.x.x                     | 21.x         |\n| 1.x.x                 | 5.x.x                     | 21.x         |\n| 0.x.x                 | 4.x.x                     | 11.x         |\n\n\n\n## License\n\nUrlaubsverwaltung Extension Java API is Open Source software released under the [Apache License 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffocus-shift%2Furlaubsverwaltung-extension-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffocus-shift%2Furlaubsverwaltung-extension-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffocus-shift%2Furlaubsverwaltung-extension-api/lists"}