{"id":25167145,"url":"https://github.com/biocomputingup/drmaatic","last_synced_at":"2025-04-03T17:44:13.487Z","repository":{"id":271747585,"uuid":"411999354","full_name":"BioComputingUP/DRMAAtic","owner":"BioComputingUP","description":"DRMAAtic REST APIs for job scheduling @BioCompUP","archived":false,"fork":false,"pushed_at":"2025-02-13T17:29:26.000Z","size":2243,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-13T18:31:57.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BioComputingUP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-09-30T09:17:52.000Z","updated_at":"2025-02-13T17:29:30.000Z","dependencies_parsed_at":"2025-01-09T17:23:09.144Z","dependency_job_id":"43fab52a-d7c5-485f-865d-2d5ae2dbb18a","html_url":"https://github.com/BioComputingUP/DRMAAtic","commit_stats":null,"previous_names":["biocomputingup/drmaatic"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BioComputingUP%2FDRMAAtic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BioComputingUP%2FDRMAAtic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BioComputingUP%2FDRMAAtic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BioComputingUP%2FDRMAAtic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BioComputingUP","download_url":"https://codeload.github.com/BioComputingUP/DRMAAtic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247051984,"owners_count":20875677,"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":"2025-02-09T06:19:43.306Z","updated_at":"2025-04-03T17:44:13.454Z","avatar_url":"https://github.com/BioComputingUP.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DRMAAtic: dramatically improve your cluster potential\n\n\nThe core of the DRMAAtic architecture is the execution of a job in a DRM (such as SLURM). Each job must be defined as an executable task with pre-configured parameters specifying how and where the task will be executed. These parameters also include a set of user-defined options provided at execution time. Users initiate job execution by selecting a task, providing necessary inputs, and submitting the job. The job is subsequently created and forwarded to the DRM for execution. A universally unique identifier (UUID) is generated for the job, allowing users to track its state and interact with it as needed.\n\nDRMAAtic provides a REST API interface to submit and control jobs, as well as downloading its results. The connection of with the DRM is provided through the [DRMAA APIs](https://en.wikipedia.org/wiki/DRMAA), implemented for SLURM in this [repository](https://github.com/natefoo/slurm-drmaa).\n\nDRMAAtic APIs where built using the Django REST Framework, and [drmaa-python](https://github.com/pygridtools/drmaa-python?tab=readme-ov-file) as interface between python and the implementation of the SLURM-DRMAA APIs.\nFull references to the available APIs in DRMAAtic are available [here](https://drmaatic.biocomputingup.it/).\n\n## Deployment\n\nIt is highly suggested to deploy DRMAAtic as Docker container, for full reference guide and examples on how to do that you can read the README in `docker/testing` and `docker/deploy-example`. In the first case the enitre cluster structure is created with a `docker compose`, while in the latter only the DRMAAtic container is created and it shows how to connect with an existing cluster and database.\n\n## Manage.py\n\nThe migrations are handled by the `manage.py` script. This script is located in the main directory of the application\nand it's used to perform all the database operations for the application.\nThe migrations are python files that are located in the `drmaatic/migrations` directory. These files are created\nautomatically by the `manage.py` script when some changes in the models are detected. In some cases the user is asked\nto create a migration file manually (for complex migrations). The migrations are used to keep the database schema in\nsync with the models.\n\nSome useful commands for the `manage.py` script are:\n        \n        # Creates a new superuser (admin) in interactive mode\n        $ python manage.py createsuperuser\n\n        # Create the migrations\n        $ python manage.py makemigrations\n\n        # Migrate the database \n        $ python manage.py migrate\n        \nIn the case of the container, after a change is made in the application, one can access the container shell and run the migrations.\n\n## Authentication\n\nThe implemented authentication scheme is based on an OAuth authentication with a social provider (e.g. ORCID), then a JWT token is issued to the user and the user can use the token in order to perform authorized requests to DRMAAtic.\nAdditional social provider can be added by modifying the `SocialProviderAuthentication` class and adding a new social provider. The current Oauth authentication with ORCID was based on this [guide](https://github.com/ORCID/ORCID-Source/blob/main/orcid-api-web/README.md).\nThe authentication process and an example is provided in the API reference describe above.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiocomputingup%2Fdrmaatic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbiocomputingup%2Fdrmaatic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbiocomputingup%2Fdrmaatic/lists"}