Welcome to the official repository for OneTimeSharing! This open-source project aims to provide end-to-end encryption when sharing secrets over the web. The project was made open-source to provide transparency about how your secrets will be stored/handled in the application.
For more information on how to use OneTimeSharing, take a look at the Usage Guide
- Installation
- Methods and Encryption
- Hosting
- How it works
- Contribution guide
- Report issues
- Report bugs
- License
Prerequisites:
- Node.JS 18.X
First of all install the dependencies in all 3 parts of the application.
Frontend:
cd app
npm install
Lambda handlers:
cd handlers
npm install
Infrastructure:
cd infra
npm install
When all the dependencies are installed, you need to configure the AWS CLI. First make sure you follow the guide here in order to successfully install the AWS CLI.
When the CLI is successfully installed you need to give the AWS CLI credentials so that it has access to deploy the application using this guide here.
If the AWS CLI is configured correctly, you should be able to successfully deploy the application by running the "deploy" script. This deploys a production and development environment, if you only wish to deploy one of the 2. You can use the designated scripts "deploy-prod" and "deploy-dev".
Deploy both production and development environment.
cd infra
npm run deploy
Deploy the production environment.
cd infra
npm run deploy-prod
Deploy the environment environment.
cd infra
npm run deploy-dev
This application is fully integrated with AWS. For this reason it can only be deployed on the AWS platform. You can deploy the application on your own AWS account, for this you can follow the guide here.
The app section of the application will encrypt (based on the encryption type) the data. When the encryption is complete the app will then send the
The application is divided into 3 sections:
App
Handles the frontend (client-side) of the application. The frontend encrypts the data and sends this to the API for storage.
Handlers
These are the handlers for the Lambda functions, these will check if all the data is present for the requested encryption type and stores the secrets into the database as well as retreives them.
Infra
In this section the infrastructure is defined as code. For this the Amazon CDK is used to define all services necessary and deploy them.
More technical information can be found in the Technical Usage Guide
We use github to host code, to track issues and feature requests, as well as accept pull requests.
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
- Fork the repo and create your branch from main.
- If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Issue that pull request!
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can. This stackoverflow question includes sample code that anyone with a base R setup can run to reproduce what I was seeing
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
MIT