{"id":21683732,"url":"https://github.com/open-eo/openeo-spring-driver","last_synced_at":"2026-02-12T00:07:21.106Z","repository":{"id":37725979,"uuid":"276096118","full_name":"Open-EO/openeo-spring-driver","owner":"Open-EO","description":"openEO driver build on spring using WCPS and ODC storage access","archived":false,"fork":false,"pushed_at":"2024-12-12T14:21:03.000Z","size":1550,"stargazers_count":0,"open_issues_count":38,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-12T07:51:41.336Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Open-EO.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-06-30T12:45:49.000Z","updated_at":"2024-11-22T15:26:47.000Z","dependencies_parsed_at":"2023-09-22T15:44:03.766Z","dependency_job_id":"2a7db772-281b-401e-b44a-ae2acbd95c6f","html_url":"https://github.com/Open-EO/openeo-spring-driver","commit_stats":{"total_commits":410,"total_committers":10,"mean_commits":41.0,"dds":0.5487804878048781,"last_synced_commit":"af7eceb3eab55f7052ea4f969b016844df346ba7"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Open-EO/openeo-spring-driver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-spring-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-spring-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-spring-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-spring-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Open-EO","download_url":"https://codeload.github.com/Open-EO/openeo-spring-driver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-spring-driver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273082421,"owners_count":25042282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"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":[],"created_at":"2024-11-25T16:13:13.706Z","updated_at":"2026-02-12T00:07:21.082Z","avatar_url":"https://github.com/Open-EO.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenAPI generated server\n\nSpring Boot Server \n\n\n## Overview  \n\nThis server was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.\nBy using the [OpenAPI-Spec](https://openapis.org), you can easily generate a server stub.\nThis is an example of building a OpenAPI-enabled server in Java using the SpringBoot framework.\n\nThe underlying library integrating OpenAPI to SpringBoot is [springfox](https://github.com/springfox/springfox)\n\nStart your server as a simple java application\n\nYou can view the api documentation in swagger-ui by pointing to  \nhttps://localhost:8443/\n\n## Configuration setup hints\n\nThis back-end is only functional if an `application.properties` file is added to */src/main/resources*.\nThis file should contain at least the following:\n\n```\n# authentication\nspring.security.enable-basic={true,false}\nspring.security.enable-keycloak={true,false}\n\nspring.jackson.date-format=org.openeo.spring.RFC3339DateFormat\nspring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false\nspring.h2.console.enabled=true\nspring.h2.console.settings.web-allow-others=true\n\nserver.tomcat.port=8081\nserver.port=8443\n\nspring.datasource.jdbc=jdbc:h2:/path/to/openeo.db;DB_CLOSE_DELAY=-1\nspring.datasource.username=my_username\nspring.datasource.initialization-mode\n\nserver.ssl.key-store-type=PKCS12\nserver.ssl.key-store=classpath:my_keystore.p12\nserver.ssl.key-store-password=my_keystore_password\nserver.ssl.key-alias=my_alias\n#server.ssl.trust-store=classpath:my_truststore.p12\n#server.ssl.trust-store-password=my_truststore_password\n\nsecurity.require-ssl=true\nspring.security.filter.order=5\n\nspring.jackson.serialization.write-dates-as-timestamps=false\n\nco.elasticsearch.endpoint=https://my_elastic:9200\nco.elasticsearch.service.name=openeo\nco.elasticsearch.service.node.name=elk_node_hostname\nco.elasticsearch.service.index.name=es_index_name\nco.elasticsearch.service.truststore.password=my_password\nco.elasticsearch.service.truststore.path=/path/to/elastic-certificates.p12\nco.elasticsearch.service.keystore.password=my_password\nco.elasticsearch.service.keystore.path=/path/to/http.p12\nco.elasticsearch.service.username=elastic_uname\nco.elasticsearch.service.password=my_password\n\t\norg.openeo.tmp.dir=tmp/\norg.openeo.tmp.file.expiry=60\norg.openeo.file.expiry=1\norg.openeo.querycollectionsonstartup=true\norg.openeo.parallelizedHarvest=true\n\norg.openeo.wcps.endpoint=http://my_wcps_server:8080\norg.openeo.wcps.endpoint.version=2.0.1\norg.openeo.wcps.provider.name=My Company\norg.openeo.wcps.provider.url=http://www.my-company.url\norg.openeo.wcps.provider.type=host\norg.openeo.wcps.processes.list=classpath:processes_wcps.json\norg.openeo.wcps.collections.list=collections_wcps.json\n\norg.openeo.odc.endpoint=http://my_open_data_cube_endpoint\norg.openeo.odc.deleteResultEndpoint=http://my_open_data_cube_endpoint_for_stopping_a_job\norg.openeo.odc.collectionsEndpoint=http://my_open_data_cube_endpoint/collections/\norg.openeo.odc.provider.name=open data cube provider name\norg.openeo.odc.provider.url=http://www.open_data_cube_provider.url\norg.openeo.odc.provider.type=host\norg.openeo.odc.processes.list=classpath:processes_odc.json\norg.openeo.odc.collections.list=collections_odc.json\n\norg.openeo.endpoint=https://my_openeo.url\norg.openeo.public.endpoint=https://my_openeo_public.url\norg.openeo.udf.python.endpoint=http://my_openeo_python_udf_service.url\norg.openeo.udf.candela.endpoint=http://my_openeo_candela_service.url\norg.openeo.udf.r.endpoint=http://my_openeo_R_udf_service.url\norg.openeo.udf.dir=/my/udf/working/directory/\norg.openeo.udf.importscript=/my/udf/import/script/import_udf.sh\n\nspring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration\n```\n\nFurther files needed are for authentication management through an external Keycloak server.\nThe `keycloak.properties`:\n\n```\nspring.security.oauth2.client.registration.keycloak.client-id=openEO\nspring.security.oauth2.client.registration.keycloak.client-secret={{secret}}\nspring.security.oauth2.client.registration.keycloak.authorization-grant-type=authorization_code\nspring.security.oauth2.client.registration.keycloak.scope=openid\n\n# OpenID Connect (OIDC)\nspring.security.oauth2.client.provider.keycloak.issuer-uri=https://my_keycloak.url/auth/realms/my_realm\nspring.security.oauth2.client.provider.keycloak.user-name-attribute=preferred_username\n\n# OAUTH2-JWT token\nspring.security.oauth2.resourceserver.jwt.issuer-uri=https://my_keycloak.url/auth/realms/my_realm\n\n# openEO credentials\norg.openeo.oidc.providers.list=classpath:oidc_providers.json\n```\n\nand for the support of default client id configuration: `oidc_providers.json`\n\n```\n{\n\t\"providers\": [\n\t\t{\n\t\t\t\"id\": \"my_default_provider\",\n\t\t\t\"issuer\": \"https://my_keycloak.url/auth/realms/my_realm\",\n\t\t\t\"scopes\": [\n\t\t\t\t\"email\",\n\t\t\t\t\"profile\",\n\t\t\t\t\"roles\",\n\t\t\t\t\"web-origins\",\n\t\t\t\t\"address\",\n\t\t\t\t\"microprofile-jwt\",\n\t\t\t\t\"offline_access\",\n\t\t\t\t\"phone\"\n\t\t\t],\n\t\t\t\"title\": \"My Deault Provider\",\n\t\t\t\"description\": \"Some more information about my default oidc provider and setup.\",\n\t\t\t\"default_clients\": [\n\t\t\t\t{\n\t\t\t\t\t\"id\": \"my_client_id\",\n\t\t\t\t\t\"grant_types\": [\n\t\t\t\t\t\t\"authorization_code+pkce\",\n\t\t\t\t\t\t\"refresh-token\"\n\t\t\t\t\t],\n\t\t\t\t\t\"redirect_urls\": [\n\t\t\t\t\t\t\"https://editor.openeo.org/\",\n\t\t\t\t\t\t\"http://localhost:1410/*\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}\n```\n\nFor internal basic authentication instead, a bearer token issuer configuration file shall also be created: ``jwt.properties``\n\n```\njwt.secret={{secret-hash}}\njwt.issuer=ACME Srl\njwt.type=JWT\njwt.audience=openEO\njwt.exp-minutes={{N}}\n```\n\n## Logging\n\nAll logging can be controlled through **log4j2**.\nFor tweaking of log level and file output modify\n`log4j2.xml` in *./src/main/resources*.\n\nThe latest server rolllog is stored in the `openeo_$VERSION.log`, which is rolled after reaching 250MB of size, storing the compressed rolled logs in monthly subfolders *YYYY-MM/*. The root log folder can be set via the `OPENEO_LOGS_DIR` environment variable (default to *./logs/*).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-eo%2Fopeneo-spring-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-eo%2Fopeneo-spring-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-eo%2Fopeneo-spring-driver/lists"}