A simple API to upload notes or files to KBFS

Overview

KBFS Upload API

Purpose

This API can be used to upload either secure notes or files to a secure KeybaseFS folder. The idea behind it is that files can be stored in a secure, end-to-end encrypted format without having less tech-savvy end users sign up for Keybase. This was created as a work around I needed at work so that coworkers could send me sensitive information in a secure format, but they didn't have Keybase or know how to use GPG. Creating this API and an internal web-page front end for it allowed them to send me this information and have it stored securely without teaching them anything about encryption.

Usage

Direct Launch

If you'd like to run this directly using Poetry to install it. Simply do poetry install to install it, then poetry run kbfsu to launch it.

Docker

This is also available as a Docker image. Simply run docker run -p 5000:5000 -d --restart=always dakotakae/kbfs_upload to start the server listening on port 5000.

Configuration

No matter how you launch it, some configuration will be required. This can all be done with Environment Variables.

Variable Name Data Type Description Required Default
KBFSU_CHAT_TYPE str Type of chat to send notifications to. Can be private, team or silent No silent
KBFSU_CHAT_TEAM str The team that will be used to store the files. The bot must be a member of that team (not just installed) Yes, if KBFSU_CHAT_TYPE is team none
KBFSU_CHAT_TEAM_CHANNEL str The team chat channel to send notifications to. No general
KBFSU_CHAT_USER str The user to sharefiles with Yes, if KBFSU_CHAT_TYPE is private or silent Same as KEYBASE_USERNAME
KBFSU_FILER_DIR str The subdirectory path to store files in. No none
KEYBASE_USERNAME str The username to log into Keybase with Yes none
KEYBASE_PAPERKEY str The paperkey to use to log the user into Keybase Yes none

API Interaction

The API accepts POST requests to /upload/ , where type is either note or file. Both types accept form-data as the input. Both types also require the following form entries:

  • filename - The name to save the file to. This filename will be sanitized and timestamped after the fact, but is still required.
  • sender - The name of the person submitting the form.

You can also send recipient to identify the intended recipient of the file. This is an arbitrary string and does not have to be a particular Keybase username.

If type is note, the request also needs to include a body field that contains the text to be stored. If the type is file, the uploaded file must be sent with the file key.

This is all the reference needed to build your own front-end for this api.

Development/Contribution

As stated before, Poetry is used to manage the project. If there are any improvements/changes to be made, feel free to submit a PR.

Support

Owner
Dakota Brown
I am a Python developer, devops engineer for a great company, coffee lover, spouse to a great woman, and parent to two crazy offspring.
Dakota Brown
Acesse seus investimentos da NuInvest pelo Python (Experimental)

Acesse seus investimentos da NuInvest pelo Python (Experimental)

André Roggeri Campos 5 Dec 06, 2022
适用于HoshinoBot下的雀魂插件。可进行近期对局查询、查询个人数据等功能,更多功能正在扩展

Majsoul_bot This is a Majsoul plugin for HoshinoBot 这是一个HoshinoBot的雀魂相关插件 本项目目前正在扩展,后续会扩展更多功能,敬请期待 前言 项目地址:https://github.com/DaiShengSheng/Majsoul_bo

黛笙笙 33 Dec 14, 2022
General tricks that may help you find bad, or noisy, labels in your dataset

doubtlab A lab for bad labels. Warning still in progress. This repository contains general tricks that may help you find bad, or noisy, labels in your

vincent d warmerdam 449 Dec 26, 2022
Read and write life sciences file formats

Python-bioformats is a Python wrapper for Bio-Formats, a standalone Java library for reading and writing life sciences image file formats. Bio-Formats

CellProfiler 106 Dec 19, 2022
A country information finder module

A country information finder module

Fayas Noushad 3 Nov 28, 2021
WGGCommute - Adding Commute Times to WG-Gesucht Listings

WGGCommute - Adding Commute Times to WG-Gesucht Listings This is a barebones implementation of a chrome extension that can be used to add commute time

Jannis 2 Jul 20, 2022
Aerospace utilities: flight conditions package, standard atmosphere model, and more.

Aerospace Utilities About Module that contains commonly-used aerospace utilities for problem solving. Flight Condition: input altitude to compute comm

1 Jan 03, 2022
- Auto join teams teams ( from calendar invite )

Auto Join Teams Meetings Requirements: Python 3.7 or higher Latest Google Chrome This script automatically logins to your account and joins the meetin

Prajin Khadka 10 Aug 20, 2022
NewsBlur is a personal news reader bringing people together to talk about the world.

NewsBlur NewsBlur is a personal news reader bringing people together to talk about the world.

Samuel Clay 6.2k Dec 29, 2022
Reload all Blender add-on modules

Reload-Addon This add-on creates a list of the modules that the add-on selected in the drop-down menu contains and reloads them with the keyboard shor

2 Dec 02, 2021
Simple tooling for marking deprecated functions or classes and re-routing to the new successors' instance.

pyDeprecate Simple tooling for marking deprecated functions or classes and re-routing to the new successors' instance

Jirka Borovec 45 Nov 24, 2022
A script to add issues to a project in Github based on label or status.

Add Github Issues to Project (Beta) A python script to move Github issues to a next-gen (beta) Github Project Getting Started These instructions will

Kate Donaldson 3 Jan 16, 2022
Notebook researcher - Notebook researcher with python

notebook_researcher To run the server, you must follow these instructions: At th

4 Sep 02, 2022
DNA Storage Simulator that analyzes and simulates DNA storage

DNA Storage Simulator This monorepository contains code for a research project by Mayank Keoliya and supervised by Djordje Jevdjic, that analyzes and

Mayank Keoliya 3 Sep 25, 2022
Some out-of-the-box hooks for pre-commit

pre-commit-hooks Some out-of-the-box hooks for pre-commit. See also: https://github.com/pre-commit/pre-commit Using pre-commit-hooks with pre-commit A

pre-commit 3.6k Dec 29, 2022
Model Quantization Benchmark

MQBench Update V0.0.2 Fix academic prepare setting. More deployable prepare process. Fix setup.py. Fix deploy on SNPE. Fix convert_deploy bug. Add Qua

500 Jan 06, 2023
Mengzhan (John) code for Closed Loop Control system of Sharp Wave Ripples in Hippocampus CA3 region

ClosedLoopControl_Yu Mengzhan (John) code for Closed Loop Control system of Sharp Wave Ripples in Hippocampus CA3 region Creating Python Virtual Envir

Mengzhan (John) Liufu 1 Jan 22, 2022
A(Sync) Interface for internal Audible API written in pure Python.

Audible Audible is a Python low-level interface to communicate with the non-publicly Audible API. It enables Python developers to create there own Aud

mkb79 192 Jan 03, 2023
Airbrake Python

airbrake-python Note. Python 3.4+ are advised to use new Airbrake Python notifier which supports async API and code hunks. Python 2.7 users should con

Airbrake 51 Dec 22, 2022
Automated, progress quest-inspired procedural adventuring

Tales of an Endless Journey (TEJ) Automated, progress quest-inspired procedural adventuring What is this project? Journey is the result of many, many

8 Dec 14, 2021