Skip to content

Latest commit

 

History

History
44 lines (35 loc) · 2.36 KB

README.md

File metadata and controls

44 lines (35 loc) · 2.36 KB

Growlithe

Growlithe is tool that integrates with the serverless application development lifecycle to enable compliance with data policies. Growlithe allows specifying declarative policies on an application's dataflow graph, and enforces them with static and runtime checks.

Our 2025 IEEE S&P paper provides more details about the design of Growlithe:

Setup

python -m venv venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`

Note: You may be prompted to install Microsoft Visual C++ Build Tools if using Windows. Download from Visual Studio Build Tools.

  • If using JavaScript functions, ensure Node.js is installed and install dependencies by running: npm install --prefix growlithe/graph/adg/js

Usage

Activate the virtual environment, then:

  • Navigate to your serverless application, create a file growlithe_config.yaml with the following configuration:
# app_path: <Relative path to the main application>
app_name: <Name of the application>
src_dir: <Source code of the application relative to app_path>
app_config_path: <Relative path to the application configuration>
app_config_type: <Type of application config - [SAM, Terraform]>
cloud_provider: <cloud provider of the application - [AWS, GCP]>

Use Growlithe CLI on the application:

  • growlithe analyze to analyze the source code.
  • Configure <app_path>/growlithe_<app_name>/policy_spec.json with the required policies.
  • growlithe apply to regenerate the source code with the applied policies.

Acknowledgments

This work was supported in part by the Natural Sciences and Engineering Research Council of Canada (NSERC) [DGDND-2021-02961, GPIN-2021-03714, DGECR-202100462], the funding from the Innovation for Defence Excellence and Security (IDEaS) Program of the Department of National Defense [MN3-011], and the UBC STAIR (Support for Teams to Advance Interdisciplinary Research) Program.