A Python library used to generate a backend for custom logic using Hasura as a Data-layer
Project description
# Pysura
### Hasura + Python = Pysura
## Limitations:
Currently, this only supports a Google-based deployment/stack. I think this would be fixable, but due to the amount of time I’ve spent learning gcloud it would probably be better suited to a AWS/Azure/Etc. architect to write the commands.
## Requirements:
gcloud CLI
gcloud beta CLI
A billing account with Google Cloud
Docker
Firebase CLI
Python 3.6+
`commandline pip install pysura pysura (pysura_cli) >>> setup `
# What is Pysura?
Pysura is a CLI tool that’s designed to make building and deploying actions, events, and chron-jobs as easy as it is to do everything else in Hasura.
Pysura does not use the Hasura CLI, and instead manages the metadata directly via retrieving it and overwriting it.
Pysura is built to bring Python to Hasura because it’s a really great language for things like actions, events, and chron-jobs.
How can Pysura help me setup my project?
Run the setup command and follow the installer instructions and you are done.
### What the setup command does?
Create or select an existing project in Google Cloud
Select an existing billing account in Google Cloud
Configure a Virtual Private cloud with subnets and firewall rules
Create a Cloud SQL Postgresql instance with specified memory and storage in specified region
Deploys Hasura to Cloud Run with all database connections routed through serverless VPC connectors
Attaches a Firebase project to the google cloud project
Enables Firebase Authentication (Requires user to enable phone authentication in the Firebase console)
Builds and Deploys template firebase functions to handle authentication and authorization
Attaches Firebase Authentication JWT to Hasura for RBAC
### What is a Pysura microservice?
A pysura microservice is a FastAPI application that is deployed to Cloud Run that handles actions, events, and chron-jobs.
All action inputs and outputs are converted into Pydantic models.
Each action or event is placed inside its own individual file, with auth baked in.
### Who is Pysura for?
Pysura is for Python developers who want to adopt GraphQL in a way that’s pythony.
# Pysura commands
## Start pysura
`commandline pysura `
## Setup
Automagic project setup.
`commandline setup `
## Quit pysura
`commandline quit exit ^Z `
## Set a Google Cloud Project
`commandline gcloud_set_project <project_id> `
## Configure Hasura Instance
Set Admin Secret
`commandline set_hasura_admin_secret <admin_secret> `
Set Hasura Metadata URL:
`commandline set_hasura_metadata_url <metadata_url> `
## Import the Hasura Metadata
`commandline import_hasura_metadata `
## Export the Hasura Metadata
`commandline export_hasura_metadata `
## Add a new database to hasura. (Create new Postgresql or use existing)
`commandline add_database `
## Add a new action to hasura TODO
TODOS:
Flutterfire Microservice templates
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pysura-0.10.24.tar.gz
.
File metadata
- Download URL: pysura-0.10.24.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1053a6ad0d9bf4a85763982d46642b15247c4b67b0ce4efd2fc784db571835e |
|
MD5 | 70345cad5e65e4e71e079c205a4b934c |
|
BLAKE2b-256 | 06acebe15502a1febf50371d03c1dec5f6dbe0e0bf77a31bac5d6a12080feaf3 |