Jarrid is excited to announce the release of Keyper, a powerful multi-platform Kotlin (Java) based CLI tool designed to simplify crypto key management and deployment with just a few commands. Think of Keyper as the Stripe for crypto keys. We know there are many features to be added, but we'd like to share this early release and welcome your feedback.
Keyper manages cryptokeys in two layers: Key Configuration > Terraform Integration.
Crypto key configurations help keep each key well documented and managed. We chose a file-based approach because it is:
{
"usage": "CREATE_KEY",
"keyId": "<uuid>",
"created": "2024-06-30T06:45:54.414795Z",
"deploymentId": "<uuid>",
"context": {
"platform": "jarrid",
"application": "keyper",
"intent": "encrypt/decrypt",
"scope": "test"
}
}
keyper key --usage CREATE_KEY --backend LOCAL --stack GCP
--usage CREATE_KEY
:--backend LOCAL
:--stack GCP
:Keyper wraps the creation and management of resources in Terraform. This allows for multi-cloud support, state management, and dependency resolution. Currently, we support GCP, with plans to add AWS soon. Terraform comes with the following benefits:
Terraform adds a lot of overhead as opposed to just calling resource management APIs to set it up. Further, HCL is declarative and in the past, developers had to manage programmable logic in both HCL and other programmable libraries. Because of these drawbacks, we decided to leverage Cloud Development Kit for Terraform (CDKTF) so that we can retain the flexibility of programmable languages and break down deployment to as granular as needed while keeping the simplicity of cloud resource management and deployment pipelines.
CDKTF has several key concept that could be easily mapped to existing Terraform vocabulary for developers that came from Terraform and HCL background.
cdktf synth
:synth
essentially programmatically generate the cdktf.out
(similar to deployment definition file).cdktf diff
:diff
is equivalent of terraform plan
which shows what resources will be deploy/modified/destroy based on current resource deployment definition file generated in cdktf.out
.cdktf deploy
:deploy
is equivalent of terraform apply
which will run the terraform plan accordingly.Now, don't worry about the translation of these different commands. We've wrap it for you as well in keyper.
# generate deployment plan
keyper deploy plan --usage CREATE_KEY --backend LOCAL --stack GCP
# apply deployment plan
keyper deploy apply --usage CREATE_KEY --backend LOCAL --stack GCP
Library is free to use here: https://github.com/jarrid-xyz/keyper
We know this is an early (buggy) release and we'd love to help you set it up. Or if you have any feedback we'd love to talk to you.
Let's TalkJarrid drops new feature release every Monday. Stay tuned and please share any feedback with us. Together, we can build a better "Keyper" for our data.
We will add additional feature and talk about how to use Keyper APIs to manage the end to end process to encrypt and decrypt the data.
By managing data through crypto keys (on top of existing access control), we can expose data access management beyond teams and BUs within company and allow data creators (platform users that creates the data) to have direct control over data sharing. This creates better transparency between businesses and data creators comparing to the "Terms of Usage" or "Terms of Service" checkbox.