{"id":21683738,"url":"https://github.com/open-eo/openeo-earthengine-driver","last_synced_at":"2025-04-12T07:51:22.079Z","repository":{"id":47847297,"uuid":"125233617","full_name":"Open-EO/openeo-earthengine-driver","owner":"Open-EO","description":"openEO back-end driver for Google Earth Engine.","archived":false,"fork":false,"pushed_at":"2025-02-06T15:37:08.000Z","size":1018,"stargazers_count":25,"open_issues_count":18,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-26T03:04:39.547Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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":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}},"created_at":"2018-03-14T15:25:31.000Z","updated_at":"2025-02-06T15:28:00.000Z","dependencies_parsed_at":"2024-01-23T14:42:31.092Z","dependency_job_id":"b59d12bc-2753-4da4-be03-150cca7b6690","html_url":"https://github.com/Open-EO/openeo-earthengine-driver","commit_stats":{"total_commits":334,"total_committers":7,"mean_commits":"47.714285714285715","dds":"0.13173652694610782","last_synced_commit":"f608d82e8ce0adb13c98139c0897f263ecf932e3"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-earthengine-driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-earthengine-driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-earthengine-driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Open-EO%2Fopeneo-earthengine-driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Open-EO","download_url":"https://codeload.github.com/Open-EO/openeo-earthengine-driver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537003,"owners_count":21120688,"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","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:18.485Z","updated_at":"2025-04-12T07:51:22.072Z","avatar_url":"https://github.com/Open-EO.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# openeo-earthengine-driver\n\nopenEO back-end driver for [Google Earth Engine](https://earthengine.google.com/).\n\nThis back-end implements **openEO API version 1.2.0**.\n\n\u003e [!NOTE]\n\u003e This is not a production-ready implementation yet!\n\nIf you are interested in using openEO together with Google Earth Engine, [express your interest with the Google Earth Engine Team](https://developers.google.com/earth-engine/help#feature_requests), please.\n\n## Demo\n\nThe demo instance is running at \u003chttps://earthengine.openeo.org\u003e\n\nTo log in, you can use your Google Account to authenticate as long as it's signed up for Google Earth Engine.\nAs a non-commercial user, you can [register for Google Earth Engine](https://signup.earthengine.google.com/) for free.\n\nIf you are unable to register for Google Earth Engine, we can also provide a demo account.\nPlease contact [openeo.psc@uni-muenster.de](mailto:openeo.psc@uni-muenster.de).\n\n## Setting up an instance\n\nThe driver is written in [node.js](https://nodejs.org/) and requires at least version 20.0.0.\nInstall node.js and npm according to the official documentation of each software package.\n\nAfterwards either download the files in this repository or clone it. Run `npm install` to install the dependencies\n\n### Configuration\n\nThere are several important configuration options in the file [config.json](config.json):\n\n* `hostname`: The address of the server running the openEO GEE driver. For local deployments usually `127.0.0.1`, for public instances the ip or domain name of the server, e.g. `earthengine.openeo.org`.\n* `port`: The port the HTTP instance of the openEO GEE driver is running on.\n* `ssl`: Configuration to enable HTTPS (secured HTTP with SSL).\n    * `port`: The port the HTTPS (secured) instance of the openEO GEE driver is running on.\n    * `key`: If you want to create an HTTPS server, pass in a private key. Otherwise set to `null`.\n    * `certificate`: If you want to create an HTTPS server, pass in a PEM-encoded certificate. Otherwise set to `null`.\n\n#### Setting up GEE authentication\n\nGenerally, information about authentication with Google Earth Engine can be found in the [Earth Engine documentation](https://developers.google.com/earth-engine/app_engine_intro).\n\n##### Service Account\n\nIf you want to run all processing through a single account you can use service accounts. That's the most reliable way right now.\nThe server needs to authenticate with a [service accounts](https://developers.google.com/earth-engine/service_account) using a private key. The account need to have access rights for earth engine. You need to drop your private key file into a secure place specify the file path of the private key in the property `serviceAccountCredentialsFile` in the file [config.json](config.json).\n\n##### Google User Accounts\n\n\u003e [!CAUTION]\n\u003e This authentication method currently requires you to login every 60 minutes unless the openEO clients refresh the tokens automatically.\n\u003e User workspaces also don't work reliably as of now.\n\nAlternatively, you can configure the driver to let users authenticatie with their User Accounts via OAuth2 / OpenID Connect.\nFor this you need to configure the property `googleAuthClients` in the file [config.json](config.json).\n\nYou want to have at least client IDs for \"Web Application\" from the\n[Google Cloud Console](https://console.cloud.google.com/apis/credentials).\n\nFor example:\n\n```json\n[\n  {\n    \"id\": \"1234567890-abcdefghijklmnop.apps.googleusercontent.com\",\n    \"grant_types\": [\n      \"implicit\"\n    ],\n    \"redirect_urls\": [\n      \"https://editor.openeo.org/\",\n      \"http://localhost/\"\n    ]\n  }\n]\n```\n\n### Starting up the server\n\nAfter configuration, the server can be started. Run `npm run up` to start the server.\n\nAfter finishing work, you can stop the server by running `npm run down`.\n\n#### User management\n\nTo manage the user accounts that are not authenticting through their Google Accounts:\n\n- Add a new user: `npm run adduser`\n- Delete a user: `npm run deluser`\n- List all users: `npm run users`\n\n## Usage\n\nFor both the demo servers or your own instance you can use the [openEO API](https://open-eo.github.io/openeo-api/apireference/index.html) to communicate with Google Earth Engine.\n\nThere are various clients for the openEO API, e.g.\n- Web Editor\n- Python\n- R\n- JavaScript\n- Julia\n\nThere are various process graph examples in the following folder: [examples](./examples/)\n\n\u003e [!WARNING]\n\u003e Internally, Google Earth Engine works quite differently from openEO.\n\u003e In some cases, the process implementations may differ slightly from the openEO process descriptions.\n\u003e For example, the handling of no-data, NaN and infinity values works differently.\n\u003e Be aware that in some cases the results may slightly differ when compared to other openEO implementations.\n\nOther known issues:\n- Ideally, all computations - including the datacube management - run on GEE's side.\n  Currently, some smaller checks still run in the proxy implementation due to the issue that we can't easily abort execution on GEE in case we identify anomalies or other issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-eo%2Fopeneo-earthengine-driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-eo%2Fopeneo-earthengine-driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-eo%2Fopeneo-earthengine-driver/lists"}