{"id":14987775,"url":"https://github.com/apache/airavata-custos-portal","last_synced_at":"2026-01-20T17:18:31.196Z","repository":{"id":39405627,"uuid":"252552494","full_name":"apache/airavata-custos-portal","owner":"apache","description":"Portal Interface for Apache Airavata Custos Security","archived":false,"fork":false,"pushed_at":"2023-10-03T03:01:34.000Z","size":4375,"stargazers_count":0,"open_issues_count":63,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-29T00:49:49.749Z","etag":null,"topics":["airavata","apache","authentication","authorization","oauth2","openidconnect","security"],"latest_commit_sha":null,"homepage":"https://airavata.apache.org/","language":"Vue","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/apache.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}},"created_at":"2020-04-02T19:53:20.000Z","updated_at":"2023-07-25T14:34:22.000Z","dependencies_parsed_at":"2024-01-25T23:05:24.163Z","dependency_job_id":"2f430796-bb39-470d-bd3b-deeaa217c879","html_url":"https://github.com/apache/airavata-custos-portal","commit_stats":{"total_commits":344,"total_committers":6,"mean_commits":"57.333333333333336","dds":0.311046511627907,"last_synced_commit":"f8f83354c4a1532b6964616573e669d1400addf1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apache/airavata-custos-portal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-custos-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-custos-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-custos-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-custos-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/airavata-custos-portal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairavata-custos-portal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"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":["airavata","apache","authentication","authorization","oauth2","openidconnect","security"],"created_at":"2024-09-24T14:15:24.724Z","updated_at":"2026-01-20T17:18:29.980Z","avatar_url":"https://github.com/apache.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Airavata Custos Portal\n\n## Getting started with running locally\n\n### .env file\n\nAssuming you are running Custos locally (see\nhttps://github.com/apache/airavata-custos/tree/develop#quickstart), edit the\n.env file to match the client id and secret generated by the Custos bootstrap\nservice:\n\n```\nCUSTOS_CLIENT_ID=\"custos-s8qf9g3odbbcdsgd2khv-10000000\"\nCUSTOS_CLIENT_SEC=\"...\"\nCUSTOS_API_URL=\"http://localhost:10000\"\nCUSTOS_SUPER_CLIENT_ID=\"custos-s8qf9g3odbbcdsgd2khv-10000000\"\n```\n\n### Running the frontend\n\nYou need Node.js 14 and Yarn 1 installed.\n\n```\nyarn install\nyarn run serve\n```\n\n### Running the Django server\n\nYou need Python 3.9+.\n\n```\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n./manage.py migrate\n./manage.py runserver\n```\n\n## How to use as a Django app\n\nAiravat custos portal is available as a python package to install and customise\nfor tenants needs. The forllowing instructions are for setting up a customised\nportal using all the features available in the airavata custos portal.\n\n1. Install\n\n```\npip install airavata-custos-portal\n```\n\n2. Create a Django app\n\n```\ndjango-admin startproject my_first_custos_app .\ncd my_first_custos_app\ndjango-admin startapp apps\ncd apps\ndjango-admin startapp frontend\n```\n\n3. Include the custos portal api and frontend in the urls.\n\n```\n# my_first_custos_app/apps/frontend/urls.py\n\nfrom django.contrib import admin\nfrom django.urls import path\nfrom django.conf.urls import include\n\nurlpatterns = [\n    path('admin/', admin.site.urls),\n    path(\"api/\", include(\"airavata_custos_portal.apps.api.urls\")),\n    path(\"\", include(\"airavata_custos_portal.apps.frontend.urls\")),\n]\n```\n\n4. Also, include the custom UI app in the urls.\n\n```\n# my_first_custos_app/apps/frontend/urls.py\n\nfrom django.contrib import admin\nfrom django.urls import path\nfrom django.conf.urls import include\n\nurlpatterns = [\n    path('admin/', admin.site.urls),\n    path(\"api/\", include(\"airavata_custos_portal.apps.api.urls\")),\n    path(\"\", include(\"airavata_custos_portal.apps.frontend.urls\")),\n    path(\"custom-ui/\", include(\"my_first_custos_app.my_custom_ui.urls\")),\n]\n```\n\n## Development\n\nThe application consists of a Vue.js frontend and a Django based backend. The\ninstructions below are for setting up the local setup for development.\n\n### Change the configurations\n\nChange the environment variables on `.env`\n\n### Run Vue.js app\n\n```\nyarn install\nyarn serve\n```\n\n### Lints and fixes files\n\n```\nyarn lint\n```\n\n## Running the Django server locally\n\n```\npython -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n./manage.py migrate\n./manage.py runserver\n```\n\nAnd then point to http://localhost:8000\n\n## How to publish\n\n1. Build the static files\n\n```\nyarn build\n```\n\n2. Build the python package\n\n```\npython -m pip install --upgrade build\npython -m build\n```\n\n3. Publish the python package to pypi.org. Optionally can push to test.pypi.org.\n   See https://packaging.python.org/tutorials/packaging-projects/ for more info.\n\n```\npython -m pip install --upgrade twine\npython -m twine upload dist/*\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fairavata-custos-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fairavata-custos-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fairavata-custos-portal/lists"}