Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Transistor

Transistor is a very small service that has only two endpoints: one for uploading data to the server and the other for downloading. Data is deleted after downloading.

Uploading:

POST /transistor/v1/public/transfers
{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "transfers",
    "attributes": {
      "data": "user_data"
    }
  }
}

Downloading:

GET /transistor/v1/public/transfers/{transfer_id}
{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "transfers",
    "attributes": {
      "data": "user_data"
    }
  }
}

Configuration

# export KV_VIPER_FILE=config.yaml

log:
  level: debug
  disable_sentry: true

db:
  url: postgresql://test:test@127.0.0.1:7000/test?sslmode=disable

listener:
  addr: :8000

Use Case

In order to share your profile with another user, for example via a QR code or link, not all metadata and SPKs can fit into the QR code, let alone the link. One option for sharing is to add the ID and AES key to the QR code or link, encrypt the data with the specified AES key, and upload it to Transistor with the specified ID.

Transistor use case