Highlights
* Secrets Revamp (135)
* Facilitate saving, sending, and sharing of Secrets by treating Secrets as a Runhouse resource
* (Alpha) AWS Lambda Functions support (139, 240, 244)
* Introduce AWS Lambda support for Runhouse functions
Secrets Revamp
The `rh.Secrets` class is being deprecated in favor of converting secrets to a Runhouse resource type. As with other resources, the new Secret class supports saving, reloading, and sending secrets across clusters.
There are various builtin secret provider types, for keeping track of compute providers (aws, azure, gcp..), api key based providers (openai, anthropic, …), and ssh key pairs.
non-provider secret, in-memory
my_secret = rh.secret(name=”my_secret”, values={“key1”: “val1”, “key2”: “val2”})
my_secret.save()
reloaded_secret = rh.secret(“my_secret”)
provider secret, in-memory or loaded from default location
aws_secret = rh.provider_secret(“aws”) loads from ~/.aws/credentials or from env vars
openai_secret = rh.provider_secret(“openai”, values={“api_key”: “my_openai_key”}) explicitly provided values
There are also various APIs for syncing secrets across your clusters and environments:
aws_secret.to(cluster, env)
cluster.sync_secrets([“aws”, “gcp”], env)
env = rh.env(secrets=[“aws”, “openai”]
fn.to(cluster, env)
Please refer to the [API tutorial](https://www.run.house/docs/stable/en/tutorials/api/secrets) for a more in-depth walkthrough of using Secrets, or the [documentation](https://www.run.house/docs/stable/en/api/python/secrets) for specific APIs and a full list of builtin providers.
(Alpha) Lambda Functions (AWS serverless)
Runhouse is extending functions to [Amazon Web Services (AWS) Lambda Compute](https://aws.amazon.com/lambda/). These functions are deployed directly on AWS serverless compute, with Lambda’s infra and servers handled under the hood, making the Lambda onboarding process more smooth and removing the need to translate code through Lambda-specific APIs.
Note: Lambda Functions are in Alpha and the APIs are subject to change. A more stable release along with examples will be published soon. In the meantime, you can find documentation [here](https://www.run.house/docs/main/en/api/python/function#lambda-function-class).
New Additions
* Add visibility to resource config, and enable public resources (222)
* API for revoking access to shared secrets (235)
Bug Fixes
* Proper tunnel caching (191, 194): tunnels were not previously being cached correctly, and dead connections not accounted for
* Sagemaker cluster launch fix (206): remove runhouse as a dependency from the launch script, as it has not yet been installed on the cluster
* Fix bug with loading runhouse files/folders through SSH fsspec (225): custom SSH port was not being set in fsspec filesystem of runhouse files/folders
* Correctly launch multiple node clusters according to num_instances (229): previously was not properly launching multiple nodes
Deprecations + BC-Breaking
* `access_type` deprecated and renamed to `access_level` for resource and sharing (223, 224, 231)
* `rh.Secrets` class deprecated in favor of convert Secrets to a resource type ((135). Some old APIs are removed, and others are deprecated. Please refer to [docs](https://www.run.house/docs/stable/en/api/python/secrets) and [tutorial](https://www.run.house/docs/stable/en/tutorials/api/secrets) for the new secrets flow.
Other
* README updates (187)
* Various docs updates