{"id":48414620,"url":"https://github.com/jaeaeich/poiesis","last_synced_at":"2026-04-06T07:02:18.200Z","repository":{"id":289066615,"uuid":"964160027","full_name":"JaeAeich/poiesis","owner":"JaeAeich","description":"Poiesis - TES v1.1.0 on Kubernetes!!!","archived":false,"fork":false,"pushed_at":"2025-10-04T21:42:29.000Z","size":1286,"stargazers_count":9,"open_issues_count":15,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-02T13:50:06.355Z","etag":null,"topics":["federated","ga4gh","ga4gh-tes","kubernetes","task","tes"],"latest_commit_sha":null,"homepage":"https://poiesis.vercel.app/","language":"Python","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/JaeAeich.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":"2025-04-10T19:27:59.000Z","updated_at":"2025-10-09T08:18:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"68814b0e-1118-44e1-bb49-58b4e297e76a","html_url":"https://github.com/JaeAeich/poiesis","commit_stats":null,"previous_names":["jaeaeich/poiesis"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/JaeAeich/poiesis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaeAeich%2Fpoiesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaeAeich%2Fpoiesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaeAeich%2Fpoiesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaeAeich%2Fpoiesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JaeAeich","download_url":"https://codeload.github.com/JaeAeich/poiesis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JaeAeich%2Fpoiesis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":["federated","ga4gh","ga4gh-tes","kubernetes","task","tes"],"created_at":"2026-04-06T07:02:16.228Z","updated_at":"2026-04-06T07:02:18.193Z","avatar_url":"https://github.com/JaeAeich.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](./LICENSE)\n[![Python 3.13.0](https://img.shields.io/badge/python-3.13.0-blue.svg)](https://www.python.org/)\n[![Website](https://vercelbadge.vercel.app/api/jaeaeich/poiesis)](https://poiesis.vercel.app)\n[![Read The Docs](https://readthedocs.org/projects/poiesis/badge/?version=latest)](https://poiesis.readthedocs.io/en/docs/)\n[![GitHub contributors](https://img.shields.io/github/contributors/jaeaeich/poiesis)](https://github.com/jaeaeich/poiesis/graphs/contributors)\n\n# poiesis\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./docs/app/public/logo/logo.png\" alt=\"Poiesis Logo\" width=\"300\" /\u003e\n  \u003cbr\u003e\n  \u003cem\u003eTES (Task Execution Service) on kubernetes!!!\u003c/em\u003e\n\u003c/div\u003e\n\nA [TES] compliant task execution service built on kubernetes with `security`,\n`scalability`, and `ease of use` in mind.\n\n## Table of Contents\n\n- [Basic Usage](#basic-usage)\n- [Installation](#installation)\n- [Development](#development)\n  - [Makefile](#makefile)\n  - [Environment reproducibility](#environment-reproducibility)\n    - [Editor config](#editor-config)\n    - [Setting environment variables (direnv)](#setting-environment-variables-direnv)\n- [Versioning](#versioning)\n- [License](#license)\n\n## Basic Usage\n\n\u003e **Note:** This is a high-level overview. For more details, please refer to the\n\u003e [Basic Usage Docs](https://poiesis.vercel.app/docs/usage/usage.html).\n\nAt its core, `Poiesis` lets you run a single task via a GA4GH TES-compliant API.\nBut since it runs natively on Kubernetes, it’s far more versatile:\n\n- Use Poiesis as the execution backend for workflow engines\n- Launch thousands of batch tasks efficiently on Kubernetes\n- Train and track ML models using reproducible task definitions\n\nWhether you're running a one-off container or building full workflows, Poiesis\nabstracts away the complexity—so you can focus on what to run, not how to run\nit.\n\n## Installation\n\n\u003e **Note:** This is a high-level overview. For detailed instructions, please\n\u003e refer to the\n\u003e [Deployment Docs](https://poiesis.vercel.app/docs/deploy/deploying-poiesis.html).\n\nTo install Poiesis into your Kubernetes cluster using Helm:\n\n1. Navigate to the Helm chart directory:\n\n   ```bash\n   cd deployment/helm\n   ```\n\n1. Run the following command to install Poiesis:\n\n   ```bash\n   helm install poiesis . -n poiesis --create-namespace\n   ```\n\nThis will install Poiesis into a new namespace called `poiesis`.\n\n## Development\n\nTo get started with development:\n\n\u003e **Note:** This is a high-level overview. For detailed instructions, please\n\u003e refer to the\n\u003e [Development Docs](https://poiesis.vercel.app/docs/dev/starting-locally).\n\n1. **Create a virtual environment** using\n   [`uv`](https://github.com/astral-sh/uv):\n\n   ```bash\n   make v\n   ```\n\n   \u003e Note: You’ll need to install `uv` first — see their docs for setup\n   \u003e instructions.\n\n1. **Activate the virtual environment**:\n\n   ```bash\n   source .venv/bin/activate\n   ```\n\n   *(Optional: alias this command to something like `sv` for convenience.)*\n\n1. **Install dependencies**:\n\n   ```bash\n   make i\n   ```\n\n1. **Start all the services**:\n\n   ```bash\n   kubectl apply -f ./deployment/dev.yaml\n   ```\n\n1. **Set environment variables**:\n\n   - Copy the `.envrc.template` to `.envrc` and fill in the necessary values.\n   - If you’re using [`direnv`](#setting-environment-variables-direnv), it will\n     automatically load `.envrc`.\n   - Alternatively, you can load the file manually:\n\n   ```bash\n   source .envrc\n   ```\n\n1. **Run the server**:\n\n   ```bash\n   make dev\n   ```\n\n### Makefile\n\nFor ease of use, certain scripts have been abbreviated in `Makefile`, make sure\nthat you have installed the dependencies before running the commands.\n\n\u003e **Note**: `make` commands are only available for Unix-based systems.\n\nTo view the commands available, run:\n\n```sh\nmake\n```\n\nHere are certain commands that you might find useful:\n\n- Make a virtual environment\n\n```sh\nmake v\n```\n\n- Install all dependencies including optional dependencies\n\n```sh\nmake i\n```\n\n\u003e **Note**: This project uses optional dependency groups such as `types`,\n\u003e `code_quality`, `docs`, `vulnerability`, `test`, and `misc`. To install stubs\n\u003e or types for the dependencies, you **must** use the following command:\n\u003e\n\u003e ```sh\n\u003e uv add types-foo --group types\n\u003e ```\n\u003e\n\u003e Replace `types-foo` with the name of the package for the types. All runtime\n\u003e dependencies should be added to the `default` group. For example, to install\n\u003e `requests` and its type stubs, run:\n\u003e\n\u003e ```sh\n\u003e uv add requests\n\u003e uv add types-requests --group types\n\u003e ```\n\u003e\n\u003e This ensures that the type checker functions correctly.\n\u003e\n\u003e **Note**: Since the dependencies are segregated into groups, if you add a new\n\u003e group make sure to add it in `make install` command in [Makefile](Makefile).\n\n- Run tests\n\n```sh\nmake t\n```\n\n- Run linter, formatter and spell checker\n\n```sh\nmake fl\n```\n\n- Build the documentation\n\n```sh\nmake d\n```\n\n\u003e **Note**: If you make changes to the code, make sure to generate and push the\n\u003e documentation using above command, else the documentation check CI will fail.\n\u003e Do NOT edit auto-generated documentation manually.\n\n- Run type checker\n\n```sh\nmake tc\n```\n\n- Run all pre-commit checks\n\n```sh\nmake pc\n```\n\n\u003e **Note**: This is not the complete list of commands, run `make` to find out if\n\u003e more have been added.\n\n### Environment reproducibility\n\n#### Editor Config\n\nTo ensure a consistent code style across the project, we include an\n`.editorconfig` file that defines the coding styles for different editors and\nIDEs. Most modern editors support this file format out of the box, but you might\nneed to install a plugin for some editors. Please refer to the\n[EditorConfig website][editor-config].\n\n#### Setting environment variables (direnv)\n\nOur project uses [.envrc files][direnv] to manage environment variables.\nWherever such a file is required across the project tree, you will find a\n`.envrc.template` file that contains the necessary variables and helps you\ncreate your own personal copy of each file. You can find the locations of all\n`.envrc.template` files by executing `find . -type f -name \\.envrc\\.template` in\nthe root directory. For each, create a copy named `.envrc` in the same\ndirectory, open it in a text editor and replace the template/example values with\nyour own personal and potentially confidential values.\n\n**Warning:** Be careful not to leak sensitive information! In particular,\n**never** add your secrets to the `.envrc.template` files directly, as these are\ncommitted to version control and will be visible to anyone with access to the\nrepository. Always create an `.envrc` copy first (capitalization and punctuation\nmatter!), as these (along with `.env` files) are ignored from version control.\n\nOnce you have filled in all of your personal information, you can have the\n`direnv` tool manage setting your environment variables automatically (depending\non the directory you are currently in and the particular `.envrc` file defined\nfor that directory) by executing the following command:\n\n```sh\ndirenv allow\n```\n\n## Versioning\n\nThe project adopts the [semantic versioning][semver] scheme for versioning.\nCurrently the software is in a pre-release stage, so changes to the API,\nincluding breaking changes, may occur at any time without further notice.\n\n## License\n\nThis project is distributed under the [Apache License 2.0][badge-license-url], a\ncopy of which is also available in [`LICENSE`][license].\n\n[badge-license-url]: http://www.apache.org/licenses/LICENSE-2.0\n[direnv]: https://direnv.net/\n[editor-config]: https://editorconfig.org/\n[license]: LICENSE\n[semver]: https://semver.org/\n[tes]: https://github.com/ga4gh/task-execution-schemas\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaeaeich%2Fpoiesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaeaeich%2Fpoiesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaeaeich%2Fpoiesis/lists"}