Add initial version of TypeDB extension #108
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Add initial version of TypeDB extension. Migrating from the temporary repo used to build out the MVP, in collaboration with the TypeDB team: https://github.com/whummer/localstack-utils/tree/master/localstack-typedb
After installing the extension, a TypeDB server instance will become available under
typedb.localhost.localstack.cloud:4566, allowing you to create and manage TypeDB databases directly from your AWS applications running in LocalStack.For example, you could create a microservice backed by a Lambda function that connects to a TypeDB database upon invocation. See here for a simple example application that makes use of this extension.
This is part of a collaboration / co-branding with TypeDB, a blog post should be following soon.. (/cc @flyingsilverfin )
Changes
ProxiedDockerContainerExtensionwhich can be used to define an Extension backed by a Docker container. We may be able to pull out this class into common utils over time.ProxyResourceclass which is used as a resource that hooks into the LocalStack (rolo) handler chain and forwards matching requests to the extension containerProxyRequestMatcherclass which allows the extension to define which incoming requests are in scope and should be forwarded to the TypeDB containerTcpForwarderclass to enable a bidirectional TCP proxy tunnel that forwards traffic to and from the external containerTypeDbExtensionclass which defines the main entrypoint for the extension