{"id":19407719,"url":"https://github.com/nasa-jpl/django-launchbox","last_synced_at":"2026-03-04T09:02:24.438Z","repository":{"id":61671147,"uuid":"525160408","full_name":"nasa-jpl/django-launchbox","owner":"nasa-jpl","description":"A plugin for your Django app to assist in integrating with Launchbox.","archived":false,"fork":false,"pushed_at":"2025-12-01T17:58:31.000Z","size":24,"stargazers_count":15,"open_issues_count":3,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-04T07:32:13.219Z","etag":null,"topics":["deployment","django","hacktoberfest","python"],"latest_commit_sha":null,"homepage":"https://nasa-jpl.github.io/launchbox/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nasa-jpl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2022-08-15T22:46:12.000Z","updated_at":"2025-11-04T03:36:51.000Z","dependencies_parsed_at":"2023-02-19T11:55:20.864Z","dependency_job_id":"69f1b4c3-4e09-48d9-abe5-eb00f5f0a366","html_url":"https://github.com/nasa-jpl/django-launchbox","commit_stats":{"total_commits":10,"total_committers":2,"mean_commits":5.0,"dds":"0.19999999999999996","last_synced_commit":"45cd8a01a27c20f0118d73213242ca6494e0a97b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nasa-jpl/django-launchbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fdjango-launchbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fdjango-launchbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fdjango-launchbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fdjango-launchbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nasa-jpl","download_url":"https://codeload.github.com/nasa-jpl/django-launchbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa-jpl%2Fdjango-launchbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30076935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["deployment","django","hacktoberfest","python"],"created_at":"2024-11-10T12:03:34.546Z","updated_at":"2026-03-04T09:02:24.422Z","avatar_url":"https://github.com/nasa-jpl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Launchbox Helper for Django\n\nA plugin for your Django app to assist in integrating with [Launchbox](https://github.com/nasa-jpl/launchbox).\n\n\n---\n\n## Features\n\nThe plugin currently offers the following features:\n\n- A helper class for easier configuration of settings for resources provided by Launchbox,\n  like databases, caches, and storage buckets\n- A class for querying an identity service provided by a Launchbox plugin\n- An API for Launchbox to get information from your application so that\n  it can display, or even change, that info within the Launchbox Management Dashboard\n\n### Planned features\n\n- Integrations with other Launchbox plugin types – authentication and SSL certificate management\n\n\n## Installation\n\nThese steps assume that you have already added a `launch.yaml` file to your application.\nFor more information on that, [visit the Launchbox docs](https://nasa-jpl.github.io/launchbox/features/services/).\n\n1. Add `django-launchbox` to your project's requirements and install it.\n2. Add `\"launchbox\"` to your `INSTALLED_APPS` setting like this:\n   ```python\n   INSTALLED_APPS = [\n       \"launchbox\",\n       ...\n   ]\n   ```\n3. Update your Django settings to use the database provided by Launchbox:\n   ```python\n   from launchbox import LBResources\n   \n   DATABASES = {\n       # \"db\" is the resource identifier specified in your launch.yaml file\n       \"default\": LBResources().settings(\"db\")\n   }\n   ```\n   - If you configured a cache or storage bucket in your `launch.yaml` file,\n     update those settings, too:\n     ```python\n     from launchbox import LBResources\n     \n     CACHES = {\n         # \"cache\" is the resource identifier specified in your launch.yaml file\n         \"default\": LBResources().settings(\"cache\")\n     }\n     \n     # AWS_STORAGE_BUCKET_NAME is a django-storages setting\n     # \"storage\" is the resource identifier specified in your launch.yaml file\n     AWS_STORAGE_BUCKET_NAME = LBResources().settings(\"storage\") \n     ```\n4. If you want to manage users in the Launchbox dashboard,\n   add the `LB_USER_ATTRIBUTES` setting to specify which user model fields\n   and properties you want to log and validate:\n   ```python\n   LB_USER_ATTRIBUTES = [\n       \"first_name\",\n       \"last_name\",\n       \"middle_initial\",\n       \"display_name\",\n       \"email\",\n       \"admin_access\",\n       \"is_active\",\n       \"is_editor\",\n       \"is_moderator\",\n       \"is_owner\",\n       \"is_superuser\",\n   ]\n   ```\n   And then add the Launchbox bridge API URLs to the `urlpatterns` in your project's `urls.py`:\n   ```python\n   # Launchbox Service Bridge API\n   path(\"bridge/\", include(\"launchbox.api.urls\")),\n   ```\n\n\n## Working with Launchbox plugins\n\n### Identity providers\n\nUse the `LBIdendity` class to query an identity service provided by a Launchbox plugin.\nFor all examples given below, be sure you have imported the class with:\n\n```python\nfrom launchbox import LBIdentity\n```\n\nYou will need to know a plugin's `plugin_id` (an identifier internal to Launchbox) to work with it.\n\n#### Get a specific user\n\nTo get a user's details when you know their exact user ID within the identity database, use the `user.get()` method:\n\n```python\nuser_details = LBIdentity(\"plugin_id\").user.get(\"user_id\")\n```\n\n#### Search for a user with partial matching\n\nTo search for a user when you aren't certain of their user ID, use the `user.search()` method:\n\n```python\nuser_details = LBIdentity(\"plugin_id\").user.search(\"user_id\")\n```\n\n#### Get the groups a user belongs to\n\nFor identity providers that can place users into groups,\nyou can get a list of a user's groups with the `user.groups()` method:\n\n```python\nuser_groups = LBIdentity(\"plugin_id\").user.groups(\"user_id\")\n```\n\n#### Get group details\n\nTo get the details of a group, use the `group.get()` method:\n\n```python\ngroup_details = LBIdentity(\"plugin_id\").group.get(\"group_id\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-jpl%2Fdjango-launchbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasa-jpl%2Fdjango-launchbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa-jpl%2Fdjango-launchbox/lists"}