{"id":38644510,"url":"https://github.com/actinia-org/actinia-example-plugin","last_synced_at":"2026-01-17T09:11:51.173Z","repository":{"id":40548202,"uuid":"450085475","full_name":"actinia-org/actinia-example-plugin","owner":"actinia-org","description":"A small example plugin for actinia-core.","archived":false,"fork":false,"pushed_at":"2025-12-13T15:44:46.000Z","size":236,"stargazers_count":1,"open_issues_count":5,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-15T08:29:30.760Z","etag":null,"topics":["actinia","actinia-plugin","geospatial","opensource","rest-api","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/actinia-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-01-20T12:20:12.000Z","updated_at":"2025-12-13T15:44:47.000Z","dependencies_parsed_at":"2024-03-09T07:25:31.089Z","dependency_job_id":"fb295eb6-2478-4430-8704-8851055373a4","html_url":"https://github.com/actinia-org/actinia-example-plugin","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/actinia-org/actinia-example-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actinia-org%2Factinia-example-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actinia-org%2Factinia-example-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actinia-org%2Factinia-example-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actinia-org%2Factinia-example-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actinia-org","download_url":"https://codeload.github.com/actinia-org/actinia-example-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actinia-org%2Factinia-example-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["actinia","actinia-plugin","geospatial","opensource","rest-api","tutorial"],"created_at":"2026-01-17T09:11:50.944Z","updated_at":"2026-01-17T09:11:51.129Z","avatar_url":"https://github.com/actinia-org.png","language":"Python","readme":"# actinia-example-plugin\n\nThis is an example plugin for [actinia-core](https://github.com/mundialis/actinia_core) which adds a \"Hello World\" endpoint to actinia-core.\n\nYou can run actinia-example-plugin as an actinia-core plugin.\n\n## Installation\nUse docker-compose for installation:\n```bash\ndocker compose -f docker/docker-compose.yml build\ndocker compose -f docker/docker-compose.yml up -d\n```\n\n### Installation hints\n* If you get an error like: `ERROR: for docker_kvdb_1  Cannot start service valkey: network xxx not found` you can try the following:\n```bash\ndocker compose -f docker/docker-compose.yml down\n# remove all custom networks not used by a container\ndocker network prune\ndocker compose -f docker/docker-compose.yml up -d\n```\n\n### Requesting helloworld endpoint\nYou can test the plugin and request the `/helloworld` endpoint, e.g. with:\n```bash\ncurl -u actinia-gdi:actinia-gdi -X GET http://localhost:8088/api/v3/helloworld | jq\n\ncurl -u actinia-gdi:actinia-gdi -H 'accept: application/json' -H 'Content-Type: application/json' -X POST http://localhost:8088/api/v3/helloworld -d '{\"name\": \"test\"}' | jq\n```\n\n## DEV setup\nFor a DEV setup you can use the docker/docker-compose.yml:\n```bash\ndocker compose -f docker/docker-compose.yml build\ndocker compose -f docker/docker-compose.yml run --rm --service-ports --entrypoint sh actinia\n\n# install the plugin\n(cd /src/actinia-example-plugin \u0026\u0026 python3 setup.py install)\n# start actinia-core with your plugin\nsh /src/start.sh\n# gunicorn -b 0.0.0.0:8088 -w 1 --access-logfile=- -k gthread actinia_core.main:flask_app\n```\n\n### Hints\n\n* If you have no `.git` folder in the plugin folder, you need to set the\n`SETUPTOOLS_SCM_PRETEND_VERSION` before installing the plugin:\n```bash\nexport SETUPTOOLS_SCM_PRETEND_VERSION=0.0\n```\nOtherwise you will get an error like this\n`LookupError: setuptools-scm was unable to detect version for '/src/actinia-example-plugin'.`.\n\n* If you make changes in code and nothing changes you can try to uninstall the plugin:\n```bash\npip3 uninstall actinia-example-plugin.wsgi -y\nrm -rf /usr/lib/python3.8/site-packages/actinia_example_plugin.wsgi-*.egg\n```\n\n### Running tests\nYou can run the tests in the actinia test docker:\n\n```bash\ndocker build -f docker/actinia-example-plugin-test/Dockerfile -t actinia-example-plugin-test .\ndocker run -it actinia-example-plugin-test -i\n\ncd /src/actinia-example-plugin/\n\n# run all tests\nmake test\n\n# run only unittests\nmake unittest\n# run only integrationtests\nmake integrationtest\n\n# run only tests which are marked for development with the decorator '@pytest.mark.dev'\nmake devtest\n```\n\n## Starting steps for own plugin\nIf you want to have your own plugin you can use this repo to create it by\nexecuting the `scripts/create_own_plugin.sh`.\n\nIf you want the repo in git then you first have to create an empty git repository\nand then run the script. Then follow the last instructions from the script\nto upload the initial code to your git repository.\n\n```bash\nbash create_own_plugin.sh actinia-ex2-plugin git\n```\n\nIf you only want your own plugin in a folder and not in git you can execute the\nscript like this:\n\n```bash\nbash create_own_plugin.sh actinia-ex2-plugin\n```\n\n## Hint for the development of actinia plugins\n\n### skip permission check\nThe parameter [`skip_permission_check`](https://github.com/actinia-org/actinia-processing-lib/blob/1.1.1/src/actinia_processing_lib/ephemeral_processing.py#L1914-L1917) (see [example in actinia-statistic plugin](https://github.com/actinia-org/actinia-statistic-plugin/blob/0.3.1/src/actinia_statistic_plugin/vector_sampling.py#L224))\nshould only be set to `True` if you are sure that you really don't want to check the permissions.\n\nThe skip of the permission check leads to a skipping of:\n* [the module check](https://github.com/actinia-org/actinia-processing-lib/blob/1.1.1/src/actinia_processing_lib/ephemeral_processing.py#L676-L688)\n* [the limit of the number of processes](https://github.com/actinia-org/actinia-processing-lib/blob/1.1.1/src/actinia_processing_lib/ephemeral_processing.py#L658-L667)\n* the limit of the processing time\n\nNot skipped are:\n* the limit of the cells\n* the mapset/project limitations of the user\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factinia-org%2Factinia-example-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factinia-org%2Factinia-example-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factinia-org%2Factinia-example-plugin/lists"}