Skip to content

Growlithe is a tool to specify and configure access and dataflow policies in serverless applications.

License

Notifications You must be signed in to change notification settings

ubc-cirrus-lab/growlithe

Repository files navigation

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.

About

Growlithe is a tool to specify and configure access and dataflow policies in serverless applications.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •