From 8f2d798e1aaccba43707baeb7d3429b7bfe71641 Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Fri, 17 Jul 2026 15:57:36 +0300 Subject: [PATCH] Init --- .dockerignore | 12 + .env.example | 47 + .gitignore | 19 + Dockerfile | 26 + Makefile | 105 +++ README.md | 445 +++++++++ alembic.ini | 42 + alembic/env.py | 59 ++ alembic/script.py.mako | 19 + alembic/versions/001_initial.py | 123 +++ app/__init__.py | 0 app/api/__init__.py | 0 app/api/admin.py | 428 +++++++++ app/api/wraps.py | 331 +++++++ app/config.py | 52 ++ app/db.py | 20 + app/main.py | 150 ++++ app/models.py | 152 ++++ app/schemas.py | 82 ++ app/services/__init__.py | 0 app/services/admin_auth.py | 93 ++ app/services/audit.py | 97 ++ app/services/captcha.py | 59 ++ app/services/cleanup.py | 47 + app/services/client_ip.py | 139 +++ app/services/password_hash.py | 19 + app/services/rate_limit.py | 29 + app/services/settings_service.py | 72 ++ app/services/storage.py | 89 ++ app/services/util.py | 17 + app/services/wraps.py | 75 ++ app/static/apple-touch-icon.png | Bin 0 -> 2256 bytes app/static/css/app.css | 1047 ++++++++++++++++++++++ app/static/favicon-32.png | Bin 0 -> 501 bytes app/static/favicon.ico | Bin 0 -> 3110 bytes app/static/favicon.svg | 13 + app/static/js/admin-audit.js | 25 + app/static/js/admin-tabs.js | 32 + app/static/js/create.js | 304 +++++++ app/static/js/crypto.js | 199 ++++ app/static/js/i18n.js | 422 +++++++++ app/static/js/modal.js | 86 ++ app/static/js/theme.js | 30 + app/static/js/unwrap.js | 188 ++++ app/templates/admin_audit.html | 112 +++ app/templates/admin_base.html | 72 ++ app/templates/admin_danger.html | 44 + app/templates/admin_login.html | 53 ++ app/templates/admin_settings.html | 140 +++ app/templates/base.html | 75 ++ app/templates/create.html | 82 ++ app/templates/unwrap.html | 33 + deploy/nginx.conf | 18 + deploy/nginx.dev.conf | 25 + docker-compose.yml | 101 +++ docs/screenshots/create-dark.png | Bin 0 -> 33346 bytes docs/screenshots/create-filled-dark.png | Bin 0 -> 36788 bytes docs/screenshots/create-filled-light.png | Bin 0 -> 36634 bytes docs/screenshots/create-light.png | Bin 0 -> 32812 bytes docs/screenshots/token-issued-dark.png | Bin 0 -> 43673 bytes docs/screenshots/token-issued-light.png | Bin 0 -> 43770 bytes docs/screenshots/unwrap-dark.png | Bin 0 -> 203680 bytes docs/screenshots/unwrap-light.png | Bin 0 -> 201870 bytes helm/wrapped/Chart.yaml | 6 + helm/wrapped/templates/_helpers.tpl | 18 + helm/wrapped/templates/configmap.yaml | 22 + helm/wrapped/templates/deployment.yaml | 71 ++ helm/wrapped/templates/ingress.yaml | 35 + helm/wrapped/templates/secret.yaml | 16 + helm/wrapped/templates/service.yaml | 16 + helm/wrapped/values.yaml | 57 ++ pyproject.toml | 37 + 72 files changed, 6227 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 README.md create mode 100644 alembic.ini create mode 100644 alembic/env.py create mode 100644 alembic/script.py.mako create mode 100644 alembic/versions/001_initial.py create mode 100644 app/__init__.py create mode 100644 app/api/__init__.py create mode 100644 app/api/admin.py create mode 100644 app/api/wraps.py create mode 100644 app/config.py create mode 100644 app/db.py create mode 100644 app/main.py create mode 100644 app/models.py create mode 100644 app/schemas.py create mode 100644 app/services/__init__.py create mode 100644 app/services/admin_auth.py create mode 100644 app/services/audit.py create mode 100644 app/services/captcha.py create mode 100644 app/services/cleanup.py create mode 100644 app/services/client_ip.py create mode 100644 app/services/password_hash.py create mode 100644 app/services/rate_limit.py create mode 100644 app/services/settings_service.py create mode 100644 app/services/storage.py create mode 100644 app/services/util.py create mode 100644 app/services/wraps.py create mode 100644 app/static/apple-touch-icon.png create mode 100644 app/static/css/app.css create mode 100644 app/static/favicon-32.png create mode 100644 app/static/favicon.ico create mode 100644 app/static/favicon.svg create mode 100644 app/static/js/admin-audit.js create mode 100644 app/static/js/admin-tabs.js create mode 100644 app/static/js/create.js create mode 100644 app/static/js/crypto.js create mode 100644 app/static/js/i18n.js create mode 100644 app/static/js/modal.js create mode 100644 app/static/js/theme.js create mode 100644 app/static/js/unwrap.js create mode 100644 app/templates/admin_audit.html create mode 100644 app/templates/admin_base.html create mode 100644 app/templates/admin_danger.html create mode 100644 app/templates/admin_login.html create mode 100644 app/templates/admin_settings.html create mode 100644 app/templates/base.html create mode 100644 app/templates/create.html create mode 100644 app/templates/unwrap.html create mode 100644 deploy/nginx.conf create mode 100644 deploy/nginx.dev.conf create mode 100644 docker-compose.yml create mode 100644 docs/screenshots/create-dark.png create mode 100644 docs/screenshots/create-filled-dark.png create mode 100644 docs/screenshots/create-filled-light.png create mode 100644 docs/screenshots/create-light.png create mode 100644 docs/screenshots/token-issued-dark.png create mode 100644 docs/screenshots/token-issued-light.png create mode 100644 docs/screenshots/unwrap-dark.png create mode 100644 docs/screenshots/unwrap-light.png create mode 100644 helm/wrapped/Chart.yaml create mode 100644 helm/wrapped/templates/_helpers.tpl create mode 100644 helm/wrapped/templates/configmap.yaml create mode 100644 helm/wrapped/templates/deployment.yaml create mode 100644 helm/wrapped/templates/ingress.yaml create mode 100644 helm/wrapped/templates/secret.yaml create mode 100644 helm/wrapped/templates/service.yaml create mode 100644 helm/wrapped/values.yaml create mode 100644 pyproject.toml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d3b907f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +.git +.env +.venv +venv +__pycache__ +*.pyc +.mypy_cache +.ruff_cache +.pytest_cache +dist +*.tgz +.DS_Store diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..81222ac --- /dev/null +++ b/.env.example @@ -0,0 +1,47 @@ +# Application +APP_NAME=Wrapped +APP_ENV=development +APP_SECRET_KEY=change-me-to-a-long-random-string +APP_BASE_URL=http://localhost:8000 +LOG_LEVEL=INFO +# Swagger UI (/docs), ReDoc, openapi.json — keep true for local dev +DOCS_ENABLED=true + +# Admin (change in production) +ADMIN_USERNAME=admin +ADMIN_PASSWORD=38dmWjE1p + +# Postgres +DATABASE_URL=postgresql+asyncpg://wrapped:wrapped@postgres:5432/wrapped + +# MinIO / S3 +S3_ENDPOINT_URL=http://minio:9000 +S3_ACCESS_KEY=wrappedminio +S3_SECRET_KEY=wrappedminio123 +S3_BUCKET=wrapped +S3_REGION=us-east-1 +S3_USE_SSL=false +S3_CREATE_BUCKET=true + +# Optional CAPTCHA secrets (site keys can also be set in admin UI) +TURNSTILE_SECRET_KEY= +HCAPTCHA_SECRET_KEY= + +# Client IP / audit: trust these peers for X-Forwarded-For / X-Real-IP. +# Use * only when the app is not publicly reachable (e.g. behind ClusterIP + Ingress). +# Default covers loopback + RFC1918 (Docker Compose nginx, k8s CNI). +TRUSTED_PROXIES=127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 + +# Proxies allowed to set X-Forwarded-For / X-Real-IP (audit client IP). +# Use * behind Ingress when only the proxy can reach the app. +# Default covers loopback, RFC1918, and Docker Desktop gateway. +TRUSTED_PROXIES=127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,192.168.65.0/24 + +# Client IP / audit: peers allowed to set X-Forwarded-For, X-Real-IP, CF-Connecting-IP. +# Default = loopback + RFC1918 (Docker Desktop gateway, k8s pod CIDRs, local proxies). +# In Kubernetes behind Ingress use * (only the ingress can reach the Service). +TRUSTED_PROXIES=127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 + +# Client IP / audit: peers allowed to set X-Forwarded-For, X-Real-IP, CF-Connecting-IP. +# Use * behind a dedicated ingress (recommended in k8s). Default = loopback + RFC1918. +TRUSTED_PROXIES=127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f2b0256 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +__pycache__/ +*.py[cod] +*.egg-info/ +.venv/ +venv/ +.env +.mypy_cache/ +.ruff_cache/ +.pytest_cache/ +dist/ +build/ +*.log +.DS_Store +.idea/ +.vscode/ +helm/wrapped/charts/ +*.tgz +.coverage +htmlcov/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4010207 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM python:3.12-slim AS base + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + PIP_NO_CACHE_DIR=1 + +RUN apt-get update \ + && apt-get install -y --no-install-recommends curl \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app + +COPY pyproject.toml README.md ./ +COPY app ./app +COPY alembic ./alembic +COPY alembic.ini ./ + +RUN pip install --upgrade pip \ + && pip install . + +EXPOSE 8000 + +HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ + CMD curl -fsS http://127.0.0.1:8000/health || exit 1 + +CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000 --proxy-headers --forwarded-allow-ips=${TRUSTED_PROXIES:-*}"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b4d409b --- /dev/null +++ b/Makefile @@ -0,0 +1,105 @@ +.PHONY: help env build up down restart logs shell migrate revision release helm-package helm-lint clean ps + +COMPOSE ?= docker compose +IMAGE_NAME ?= wrapped +IMAGE_TAG ?= 0.1.0 +# Docker Hub namespace → image: $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG) +# Example: inecs/wrapped:0.1.0 +RELEASE_REGISTRY ?= inecs +# Set PUSH=0 to build/tag only (no docker push) +PUSH ?= 1 +APP_PORT ?= 8000 + +help: + @echo "Wrapped — make targets" + @echo "" + @echo " make env Copy .env.example -> .env (if missing)" + @echo " make build Build app image" + @echo " make up Start dev stack (app + Postgres + MinIO)" + @echo " make down Stop stack" + @echo " make restart Restart app service" + @echo " make logs Tail app logs" + @echo " make ps Show compose status" + @echo " make shell Shell into app container" + @echo " make migrate Run alembic upgrade head" + @echo " make revision m=\"msg\" Create alembic revision" + @echo " make release Build, tag & push $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)" + @echo " make helm-lint Lint Helm chart" + @echo " make helm-package Package Helm chart" + @echo " make clean Remove containers, volumes, local image" + @echo "" + @echo "Release examples:" + @echo " make release IMAGE_TAG=0.1.0" + @echo " make release IMAGE_TAG=0.1.0 PUSH=0" + +env: + @test -f .env || cp .env.example .env + @echo ".env ready" + +build: env + $(COMPOSE) build app + +up: env + $(COMPOSE) up -d --build + @echo "" + @echo "Wrapped: http://localhost:$(APP_PORT)" + @echo "MinIO console: http://localhost:9001 (wrappedminio / wrappedminio123)" + @echo "Admin: http://localhost:$(APP_PORT)/admin" + +down: + $(COMPOSE) down + +restart: + $(COMPOSE) restart app + +logs: + $(COMPOSE) logs -f app + +ps: + $(COMPOSE) ps + +shell: + $(COMPOSE) exec app sh + +migrate: + $(COMPOSE) exec app alembic upgrade head + +revision: + @test -n "$(m)" || (echo 'Usage: make revision m="message"' && exit 1) + $(COMPOSE) exec app alembic revision --autogenerate -m "$(m)" + +# Release: build image, tag as $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG), push to Docker Hub. +# External Postgres/MinIO: set DATABASE_URL and S3_* in runtime env / Helm values. +release: env + @echo "Building $(IMAGE_NAME):$(IMAGE_TAG)" + docker build -t $(IMAGE_NAME):$(IMAGE_TAG) . + docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG) + @echo "Tagged $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)" + @if [ "$(PUSH)" = "1" ]; then \ + echo "Pushing $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG)"; \ + docker push $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG); \ + else \ + echo "PUSH=0 — skipped docker push"; \ + fi + @$(MAKE) helm-package IMAGE_TAG=$(IMAGE_TAG) + +helm-lint: + helm lint ./helm/wrapped + +# Helm chart --version must be SemVer; non-semver IMAGE_TAG (e.g. latest) → 0.0.0- +helm-package: + @mkdir -p dist + @tag="$(IMAGE_TAG)"; \ + if echo "$$tag" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+([.+].*)?$$'; then \ + chart_ver="$$tag"; \ + else \ + chart_ver="0.0.0-$$tag"; \ + echo "IMAGE_TAG '$$tag' is not SemVer — helm chart version=$$chart_ver"; \ + fi; \ + helm package ./helm/wrapped --destination dist --version "$$chart_ver" --app-version "$$tag" + @echo "Helm chart in dist/" + +clean: + $(COMPOSE) down -v --remove-orphans + -docker rmi $(IMAGE_NAME):$(IMAGE_TAG) $(RELEASE_REGISTRY)/$(IMAGE_NAME):$(IMAGE_TAG) 2>/dev/null || true + rm -rf dist diff --git a/README.md b/README.md new file mode 100644 index 0000000..f8f21bf --- /dev/null +++ b/README.md @@ -0,0 +1,445 @@ +# Wrapped + +Анонимный сервис одноразовой передачи зашифрованных данных (текст, изображения, файлы). Шифрование выполняется в браузере (Web Crypto), на сервере хранится только ciphertext. После первого успешного открытия пакет удаляется из хранилища. + +Возможности: + +- zero-knowledge шифрование на клиенте +- одноразовое открытие (unwrap) +- опциональный пароль (`client_only` или `server_gate`) +- CAPTCHA: Cloudflare Turnstile и/или hCaptcha +- админка с лимитами, TTL, allowlist MIME, audit-логом +- Docker Compose и Helm + +Ссылка для получателя: `/w/#` или токен `wrapped_v1..`. Ключ шифрования в URL-фрагменте (`#...`) на сервер не уходит. + +## Скриншоты + +Интерфейс на русском и английском, светлая и тёмная тема. + +### Создание wrap + +| Светлая тема | Тёмная тема | +|:------------:|:-----------:| +| ![Создание — светлая](docs/screenshots/create-light.png) | ![Создание — тёмная](docs/screenshots/create-dark.png) | + +### Создание с текстом и файлами + +Текст с подсветкой синтаксиса, вложения (изображения, документы), TTL и опциональный пароль. + +| Светлая тема | Тёмная тема | +|:------------:|:-----------:| +| ![С контентом — светлая](docs/screenshots/create-filled-light.png) | ![С контентом — тёмная](docs/screenshots/create-filled-dark.png) | + +### Токен выдан + +После создания — ссылка `/w/#` и `wrapped_v1`-токен. Ключ только во фрагменте URL. + +| Светлая тема | Тёмная тема | +|:------------:|:-----------:| +| ![Токен выдан — светлая](docs/screenshots/token-issued-light.png) | ![Токен выдан — тёмная](docs/screenshots/token-issued-dark.png) | + +### Unwrap (открытие) + +Одноразовое открытие: ciphertext удаляется на сервере, превью — только в текущей сессии браузера. + +| Светлая тема | Тёмная тема | +|:------------:|:-----------:| +| ![Unwrap — светлая](docs/screenshots/unwrap-light.png) | ![Unwrap — тёмная](docs/screenshots/unwrap-dark.png) | + +--- + +## Быстрый старт (разработка) + +Нужны Docker и Docker Compose. + +```bash +make env # создаёт .env из .env.example +make up # app + Postgres + MinIO + nginx +``` + +| Сервис | URL | +|--------|-----| +| Приложение | http://localhost:8000 | +| Админка | http://localhost:8000/admin | +| MinIO Console | http://localhost:9001 (`wrappedminio` / `wrappedminio123`) | +| Postgres (опционально с хоста) | `127.0.0.1:5433` | + +```bash +make logs # логи app +make down # остановить +make clean # остановить и удалить volumes +``` + +Локальный `docker-compose.yml` **собирает** образ из Dockerfile и монтирует код с `--reload` — это режим разработки. Для сервера используйте готовый образ с Docker Hub (см. ниже). + +--- + +## Запуск на сервере (Docker Hub + Compose) + +Образ приложения публикуется на [Docker Hub](https://hub.docker.com/). На сервере его **не нужно собирать** — достаточно `docker compose pull` / `up`. + +### 1. Подготовка + +Создайте каталог и файлы: + +```bash +mkdir -p /opt/wrapped && cd /opt/wrapped +``` + +Создайте `.env` (обязательно смените секреты): + +```env +# Приложение +APP_NAME=Wrapped +APP_ENV=production +APP_SECRET_KEY=замените-на-длинную-случайную-строку +APP_BASE_URL=https://wrapped.example.com +LOG_LEVEL=INFO +DOCS_ENABLED=false + +# Админ +ADMIN_USERNAME=admin +ADMIN_PASSWORD=замените-пароль + +# БД и S3 задаются в compose (см. ниже). Для внешнего Postgres/MinIO +# переопределите DATABASE_URL и S3_* здесь или в environment сервиса app. + +# CAPTCHA (опционально; site keys также можно задать в админке) +TURNSTILE_SECRET_KEY= +HCAPTCHA_SECRET_KEY= + +# Доверие к прокси для реального IP клиента +TRUSTED_PROXIES=127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 + +APP_PORT=8000 +``` + +### 2. `docker-compose.yml` для продакшена + +Образ на Docker Hub: `inecs/wrapped` (тег задайте нужный, например `0.1.0`). + +```yaml +services: + proxy: + image: nginx:1.27-alpine + container_name: wrapped-proxy + restart: unless-stopped + ports: + - "${APP_PORT:-8000}:80" + volumes: + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - app + + app: + # Образ с Docker Hub — не build: + image: inecs/wrapped:0.1.0 + container_name: wrapped-app + restart: unless-stopped + expose: + - "8000" + env_file: + - .env + environment: + DATABASE_URL: postgresql+asyncpg://wrapped:CHANGE_DB_PASSWORD@postgres:5432/wrapped + S3_ENDPOINT_URL: http://minio:9000 + S3_ACCESS_KEY: CHANGE_MINIO_USER + S3_SECRET_KEY: CHANGE_MINIO_PASSWORD + S3_BUCKET: wrapped + S3_USE_SSL: "false" + S3_CREATE_BUCKET: "true" + APP_BASE_URL: ${APP_BASE_URL:-http://localhost:8000} + APP_ENV: production + DOCS_ENABLED: "false" + TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16} + depends_on: + postgres: + condition: service_healthy + minio: + condition: service_started + minio-init: + condition: service_completed_successfully + # Миграции и старт уже в CMD образа: + # alembic upgrade head && uvicorn ... + + postgres: + image: postgres:16-alpine + container_name: wrapped-postgres + restart: unless-stopped + environment: + POSTGRES_USER: wrapped + POSTGRES_PASSWORD: CHANGE_DB_PASSWORD + POSTGRES_DB: wrapped + volumes: + - wrapped_pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U wrapped -d wrapped"] + interval: 5s + timeout: 5s + retries: 10 + + minio: + image: minio/minio:latest + container_name: wrapped-minio + restart: unless-stopped + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: CHANGE_MINIO_USER + MINIO_ROOT_PASSWORD: CHANGE_MINIO_PASSWORD + volumes: + - wrapped_minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 10s + timeout: 5s + retries: 5 + + minio-init: + image: minio/mc:latest + container_name: wrapped-minio-init + depends_on: + minio: + condition: service_healthy + entrypoint: > + /bin/sh -c " + mc alias set local http://minio:9000 CHANGE_MINIO_USER CHANGE_MINIO_PASSWORD && + mc mb --ignore-existing local/wrapped && + exit 0 + " + +volumes: + wrapped_pg_data: + wrapped_minio_data: +``` + +Рядом положите `nginx.conf` (прокси на app): + +```nginx +server { + listen 80; + server_name _; + + client_max_body_size 64m; + + location / { + proxy_pass http://app:8000; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host; + proxy_read_timeout 120s; + } +} +``` + +Готовый пример конфига также есть в репозитории: `deploy/nginx.conf`. + +### 3. Запуск + +```bash +docker compose pull +docker compose up -d +docker compose ps +curl -fsS http://127.0.0.1:8000/health +``` + +Обновление на новую версию образа: + +```bash +# в .env / compose поменяйте тег, например inecs/wrapped:0.2.0 +docker compose pull app +docker compose up -d app +``` + +HTTPS лучше завернуть снаружи (Caddy, Traefik, nginx на хосте, Cloudflare Tunnel) и проксировать на `${APP_PORT}`. В `APP_BASE_URL` укажите публичный `https://...` URL. + +### Внешний Postgres и S3/MinIO + +Если БД и объектное хранилище уже есть, уберите сервисы `postgres`, `minio`, `minio-init` из compose и задайте: + +| Переменная | Пример | +|------------|--------| +| `DATABASE_URL` | `postgresql+asyncpg://user:pass@db-host:5432/wrapped` | +| `S3_ENDPOINT_URL` | `https://s3.example.com` | +| `S3_ACCESS_KEY` / `S3_SECRET_KEY` | ключи | +| `S3_BUCKET` | `wrapped` | +| `S3_USE_SSL` | `true` | +| `S3_CREATE_BUCKET` | `false` (если бакет уже создан) | +| `S3_REGION` | `us-east-1` | + +Минимальный compose в этом случае — только `app` (+ опционально `proxy`): + +```yaml +services: + app: + image: inecs/wrapped:0.1.0 + restart: unless-stopped + ports: + - "8000:8000" + env_file: + - .env + environment: + APP_ENV: production + DOCS_ENABLED: "false" +``` + +--- + +## Переменные окружения + +| Переменная | Описание | По умолчанию | +|------------|----------|--------------| +| `APP_NAME` | Имя сервиса | `Wrapped` | +| `APP_ENV` | `development` / `production` | `development` | +| `APP_SECRET_KEY` | Секрет сессий/подписей | — смените | +| `APP_BASE_URL` | Публичный URL (ссылки, редиректы) | `http://localhost:8000` | +| `DOCS_ENABLED` | `/docs`, `/redoc`, `/openapi.json` | в prod лучше `false` | +| `LOG_LEVEL` | Уровень логов | `INFO` | +| `ADMIN_USERNAME` | Логин админки | `admin` | +| `ADMIN_PASSWORD` | Пароль админки | — смените | +| `DATABASE_URL` | Postgres (`asyncpg`) | — | +| `S3_ENDPOINT_URL` | Endpoint MinIO/S3 | — | +| `S3_ACCESS_KEY` | Access key | — | +| `S3_SECRET_KEY` | Secret key | — | +| `S3_BUCKET` | Имя бакета | `wrapped` | +| `S3_REGION` | Регион | `us-east-1` | +| `S3_USE_SSL` | TLS к S3 | `false` | +| `S3_CREATE_BUCKET` | Создавать бакет при старте | `true` | +| `TURNSTILE_SECRET_KEY` | Секрет Turnstile | пусто | +| `HCAPTCHA_SECRET_KEY` | Секрет hCaptcha | пусто | +| `TRUSTED_PROXIES` | IP/CIDR прокси для `X-Forwarded-*` | loopback + RFC1918 | + +Полный шаблон: `.env.example`. + +--- + +## Модель безопасности + +- **Zero-knowledge.** Шифрование AES-GCM в браузере. Сервер видит только ciphertext и метаданные (TTL, MIME, размер). +- **Одноразовое открытие.** После успешного unwrap объект удаляется из S3/MinIO, статус wrap → `consumed`. +- **Пароль.** Режим `client_only` — пароль участвует в ключе на клиенте; `server_gate` — сервер проверяет хеш (Argon2) до выдачи ciphertext. +- **CAPTCHA.** Включается в админке; секреты — через env, site keys — в UI. +- **IP в audit.** Реальный IP берётся из заголовков только от `TRUSTED_PROXIES`. + +Ключ в `#fragment` не отправляется на сервер в HTTP-запросе страницы. + +--- + +## Админка + +- UI: `/admin` (логин `/admin/login`) +- Настройки: лимиты загрузки, TTL, rate limit, MIME allowlist, CAPTCHA, режим пароля, retention audit +- Audit-лог и опасные операции (purge) — в соответствующих разделах UI +- JSON Admin API: Basic Auth (`ADMIN_USERNAME` / `ADMIN_PASSWORD`), тег OpenAPI `Admin` + +--- + +## API (автоматизация) + +Тот же ZK-протокол, что и в UI: сначала шифруете локально, затем: + +| Метод | Путь | Назначение | +|-------|------|------------| +| `GET` | `/api/v1/settings` | Публичные лимиты, CAPTCHA, режим пароля | +| `POST` | `/api/v1/wraps` | Загрузить ciphertext + метаданные | +| `POST` | `/api/v1/wraps/{id}/unwrap` | Одноразово получить ciphertext | +| `GET` | `/health` | Healthcheck | + +Серверного endpoint «зашифруй за меня» нет. + +При `DOCS_ENABLED=true` доступны Swagger `/docs` и OpenAPI `/openapi.json`. + +--- + +## Сборка и публикация образа + +Нужен логин в Docker Hub: `docker login` (пользователь `inecs`). + +```bash +# Сборка + push на hub.docker.com как inecs/wrapped:0.1.0 +make release IMAGE_TAG=0.1.0 + +# Только собрать и затегать локально (без push) +make release IMAGE_TAG=0.1.0 PUSH=0 +``` + +По умолчанию: `RELEASE_REGISTRY=inecs`, `IMAGE_TAG=0.1.0` → образ `inecs/wrapped:0.1.0`. + +Эквивалент вручную: + +```bash +docker build -t inecs/wrapped:0.1.0 . +docker push inecs/wrapped:0.1.0 +``` + +Образ при старте сам выполняет `alembic upgrade head` и поднимает uvicorn на порту `8000`. Healthcheck: `GET /health`. + +--- + +## Kubernetes (Helm) + +```bash +helm upgrade --install wrapped ./helm/wrapped \ + -f my-values.yaml +``` + +В `values.yaml` задайте образ с Hub, внешние DB/S3 и секреты: + +```yaml +image: + repository: inecs/wrapped + tag: "0.1.0" + pullPolicy: IfNotPresent + +app: + env: production + baseUrl: "https://wrapped.example.com" + secretKey: "..." + adminUsername: admin + adminPassword: "..." + docsEnabled: false + trustedProxies: "*" # если до пода достучаться может только Ingress + +external: + databaseUrl: "postgresql+asyncpg://..." + s3: + endpointUrl: "https://..." + accessKey: "..." + secretKey: "..." + bucket: wrapped + createBucket: false +``` + +Упаковка чарта: `make helm-package IMAGE_TAG=0.1.0`. + +--- + +## Make-цели (разработка) + +| Цель | Описание | +|------|----------| +| `make env` | `.env` из `.env.example` | +| `make up` | Поднять dev-стек | +| `make down` / `make clean` | Остановить / с volumes | +| `make logs` / `make ps` | Логи / статус | +| `make migrate` | `alembic upgrade head` | +| `make release` | Сборка образа (+ push) и Helm package | +| `make helm-lint` / `make helm-package` | Helm | + +--- + +## Требования + +- Python 3.12+ (для запуска без Docker) +- PostgreSQL 16+ +- S3-совместимое хранилище (MinIO и т.п.) +- Docker Compose v2 — для деплоя как выше + +--- + +## Лицензия + +Proprietary / на ваше усмотрение. diff --git a/alembic.ini b/alembic.ini new file mode 100644 index 0000000..cd64a16 --- /dev/null +++ b/alembic.ini @@ -0,0 +1,42 @@ +[alembic] +script_location = alembic +prepend_sys_path = . +version_path_separator = os + +sqlalchemy.url = driver://user:pass@localhost/dbname + +[post_write_hooks] + +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/alembic/env.py b/alembic/env.py new file mode 100644 index 0000000..c03ece9 --- /dev/null +++ b/alembic/env.py @@ -0,0 +1,59 @@ +from logging.config import fileConfig + +from alembic import context +from sqlalchemy import pool +from sqlalchemy.engine import Connection +from sqlalchemy.ext.asyncio import async_engine_from_config + +from app.config import get_settings +from app.db import Base +from app import models # noqa: F401 + +config = context.config +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +target_metadata = Base.metadata +settings = get_settings() +config.set_main_option("sqlalchemy.url", settings.database_url) + + +def run_migrations_offline() -> None: + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + literal_binds=True, + dialect_opts={"paramstyle": "named"}, + ) + with context.begin_transaction(): + context.run_migrations() + + +def do_run_migrations(connection: Connection) -> None: + context.configure(connection=connection, target_metadata=target_metadata) + with context.begin_transaction(): + context.run_migrations() + + +async def run_async_migrations() -> None: + connectable = async_engine_from_config( + config.get_section(config.config_ini_section, {}), + prefix="sqlalchemy.", + poolclass=pool.NullPool, + ) + async with connectable.connect() as connection: + await connection.run_sync(do_run_migrations) + await connectable.dispose() + + +def run_migrations_online() -> None: + import asyncio + + asyncio.run(run_async_migrations()) + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/alembic/script.py.mako b/alembic/script.py.mako new file mode 100644 index 0000000..e9c408e --- /dev/null +++ b/alembic/script.py.mako @@ -0,0 +1,19 @@ +# Template used by Alembic for new revisions. +from typing import Sequence, Union + +from alembic import op +import sqlalchemy as sa + + +revision: str = "" +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + pass + + +def downgrade() -> None: + pass diff --git a/alembic/versions/001_initial.py b/alembic/versions/001_initial.py new file mode 100644 index 0000000..76adfec --- /dev/null +++ b/alembic/versions/001_initial.py @@ -0,0 +1,123 @@ +"""initial schema + +Revision ID: 001_initial +Revises: +Create Date: 2026-07-17 +""" + +from typing import Sequence, Union + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects import postgresql + +revision: str = "001_initial" +down_revision: Union[str, None] = None +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + captcha_provider = postgresql.ENUM( + "off", "turnstile", "hcaptcha", name="captcha_provider", create_type=False + ) + password_mode = postgresql.ENUM( + "client_only", "server_gate", name="password_mode", create_type=False + ) + wrap_status = postgresql.ENUM( + "pending", "consumed", "expired", name="wrap_status", create_type=False + ) + + captcha_provider.create(op.get_bind(), checkfirst=True) + password_mode.create(op.get_bind(), checkfirst=True) + wrap_status.create(op.get_bind(), checkfirst=True) + + op.create_table( + "app_settings", + sa.Column("id", sa.Integer(), nullable=False), + sa.Column("max_upload_bytes", sa.BigInteger(), nullable=False), + sa.Column("default_ttl_seconds", sa.Integer(), nullable=False), + sa.Column("max_ttl_seconds", sa.Integer(), nullable=False), + sa.Column("mime_allowlist", postgresql.JSONB(astext_type=sa.Text()), nullable=False), + sa.Column("rate_limit_create_per_minute", sa.Integer(), nullable=False), + sa.Column("rate_limit_unwrap_per_minute", sa.Integer(), nullable=False), + sa.Column("rate_limit_admin_login_per_minute", sa.Integer(), nullable=False), + sa.Column("captcha_provider", captcha_provider, nullable=False), + sa.Column("turnstile_site_key", sa.String(length=256), nullable=False), + sa.Column("hcaptcha_site_key", sa.String(length=256), nullable=False), + sa.Column("password_mode", password_mode, nullable=False), + sa.Column("audit_retention_days", sa.Integer(), nullable=False), + sa.Column( + "updated_at", + sa.DateTime(timezone=True), + server_default=sa.text("now()"), + nullable=False, + ), + sa.PrimaryKeyConstraint("id"), + ) + + op.create_table( + "wraps", + sa.Column("id", sa.String(length=32), nullable=False), + sa.Column("status", wrap_status, nullable=False), + sa.Column("object_key", sa.String(length=512), nullable=False), + sa.Column("size_bytes", sa.BigInteger(), nullable=False), + sa.Column("content_types", postgresql.JSONB(astext_type=sa.Text()), nullable=False), + sa.Column("item_count", sa.Integer(), nullable=False), + sa.Column("has_password", sa.Boolean(), nullable=False), + sa.Column("password_hash", sa.Text(), nullable=True), + sa.Column("password_mode", password_mode, nullable=False), + sa.Column( + "created_at", + sa.DateTime(timezone=True), + server_default=sa.text("now()"), + nullable=False, + ), + sa.Column("expires_at", sa.DateTime(timezone=True), nullable=False), + sa.Column("consumed_at", sa.DateTime(timezone=True), nullable=True), + sa.Column("creator_ip", sa.String(length=64), nullable=True), + sa.Column("creator_ua", sa.String(length=512), nullable=True), + sa.PrimaryKeyConstraint("id"), + sa.UniqueConstraint("object_key"), + ) + op.create_index("ix_wraps_expires_at", "wraps", ["expires_at"]) + op.create_index("ix_wraps_status", "wraps", ["status"]) + op.create_index("ix_wraps_created_at", "wraps", ["created_at"]) + + op.create_table( + "audit_events", + sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False), + sa.Column( + "created_at", + sa.DateTime(timezone=True), + server_default=sa.text("now()"), + nullable=False, + ), + sa.Column("event_type", sa.String(length=64), nullable=False), + sa.Column("wrap_id", sa.String(length=32), nullable=True), + sa.Column("success", sa.Boolean(), nullable=False), + sa.Column("ip", sa.String(length=64), nullable=True), + sa.Column("user_agent", sa.String(length=512), nullable=True), + sa.Column("accept_language", sa.String(length=128), nullable=True), + sa.Column("forwarded_for", sa.String(length=256), nullable=True), + sa.Column("details", postgresql.JSONB(astext_type=sa.Text()), nullable=False), + sa.PrimaryKeyConstraint("id"), + ) + op.create_index("ix_audit_created_at", "audit_events", ["created_at"]) + op.create_index("ix_audit_event_type", "audit_events", ["event_type"]) + op.create_index("ix_audit_events_wrap_id", "audit_events", ["wrap_id"]) + + +def downgrade() -> None: + op.drop_index("ix_audit_events_wrap_id", table_name="audit_events") + op.drop_index("ix_audit_event_type", table_name="audit_events") + op.drop_index("ix_audit_created_at", table_name="audit_events") + op.drop_table("audit_events") + op.drop_index("ix_wraps_created_at", table_name="wraps") + op.drop_index("ix_wraps_status", table_name="wraps") + op.drop_index("ix_wraps_expires_at", table_name="wraps") + op.drop_table("wraps") + op.drop_table("app_settings") + op.execute("DROP TYPE IF EXISTS wrap_status") + op.execute("DROP TYPE IF EXISTS password_mode") + op.execute("DROP TYPE IF EXISTS captcha_provider") diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/__init__.py b/app/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/api/admin.py b/app/api/admin.py new file mode 100644 index 0000000..8926e90 --- /dev/null +++ b/app/api/admin.py @@ -0,0 +1,428 @@ +from __future__ import annotations + +from fastapi import APIRouter, Depends, HTTPException, Request +from fastapi.responses import JSONResponse, RedirectResponse +from fastapi.templating import Jinja2Templates +from sqlalchemy.ext.asyncio import AsyncSession + +from app.config import get_settings +from app.db import get_db +from app.models import CaptchaProvider, DEFAULT_MIME_ALLOWLIST, PasswordMode +from app.schemas import AdminSettingsUpdate +from app.services.admin_auth import ( + AdminAuth, + AdminWebAuth, + clear_admin_cookie, + get_admin_user, + set_admin_cookie, +) +from app.services.audit import ( + count_audit, + list_audit, + list_audit_event_types, + purge_old_audit, + write_audit, +) +from app.services.rate_limit import rate_limiter +from app.services.settings_service import PASSWORD_MODE_HELP, get_or_create_settings +from app.services.wraps import cleanup_expired_meta, expire_due_wraps, purge_all_wraps, request_meta + +router = APIRouter(prefix="/admin", include_in_schema=False) +api_router = APIRouter(prefix="/admin/api", tags=["Admin"]) +templates = Jinja2Templates(directory="app/templates") + + +@router.get("") +async def admin_root(request: Request): + if get_admin_user(request): + return RedirectResponse("/admin/settings", status_code=302) + return RedirectResponse("/admin/login", status_code=302) + + +@router.get("/login") +async def login_page(request: Request): + if get_admin_user(request): + return RedirectResponse("/admin/settings", status_code=302) + return templates.TemplateResponse( + request, + "admin_login.html", + {"title": "Admin login"}, + ) + + +@router.post("/login") +async def login_submit(request: Request, db: AsyncSession = Depends(get_db)): + settings = get_settings() + app_settings = await get_or_create_settings(db) + meta = request_meta(request) + ip = meta["ip"] or "unknown" + + if not rate_limiter.allow( + f"admin_login:{ip}", app_settings.rate_limit_admin_login_per_minute + ): + await write_audit( + db, + event_type="admin.login", + success=False, + **meta, + details={"reason": "rate_limited"}, + ) + return templates.TemplateResponse( + request, + "admin_login.html", + {"title": "Admin login", "error": "Too many attempts. Try later.", "error_key": "admin.login.error.rate"}, + status_code=429, + ) + + form = await request.form() + username = str(form.get("username") or "") + password = str(form.get("password") or "") + + if username == settings.admin_username and password == settings.admin_password: + purged_audit = await purge_old_audit(db, app_settings.audit_retention_days) + expired = await expire_due_wraps(db) + cleaned = await cleanup_expired_meta(db) + await write_audit( + db, + event_type="admin.login", + success=True, + **meta, + details={ + "purged_audit": purged_audit, + "expired_wraps": expired, + "cleaned_meta": cleaned, + }, + ) + response = RedirectResponse("/admin/settings", status_code=302) + set_admin_cookie(response, username) + return response + + await write_audit( + db, + event_type="admin.login", + success=False, + **meta, + details={"reason": "bad_credentials"}, + ) + return templates.TemplateResponse( + request, + "admin_login.html", + {"title": "Admin login", "error": "Invalid credentials", "error_key": "admin.login.error.bad"}, + status_code=401, + ) + + +@router.post("/logout") +async def logout(request: Request, db: AsyncSession = Depends(get_db)): + meta = request_meta(request) + if get_admin_user(request): + await write_audit(db, event_type="admin.logout", success=True, **meta) + response = RedirectResponse("/admin/login", status_code=302) + clear_admin_cookie(response) + return response + + +@router.get("/settings") +async def settings_page( + request: Request, + db: AsyncSession = Depends(get_db), + _admin: AdminWebAuth = ..., +): + row = await get_or_create_settings(db) + env = get_settings() + return templates.TemplateResponse( + request, + "admin_settings.html", + { + "title": "Settings", + "settings": row, + "password_mode_help": PASSWORD_MODE_HELP, + "mime_examples": DEFAULT_MIME_ALLOWLIST, + "turnstile_secret_set": bool(env.turnstile_secret_key), + "hcaptcha_secret_set": bool(env.hcaptcha_secret_key), + "captcha_providers": list(CaptchaProvider), + "password_modes": list(PasswordMode), + "active": "settings", + }, + ) + + +@router.post("/settings") +async def settings_save( + request: Request, + db: AsyncSession = Depends(get_db), + admin: AdminWebAuth = ..., +): + row = await get_or_create_settings(db) + form = await request.form() + meta = request_meta(request) + + def as_int(name: str, default: int) -> int: + raw = form.get(name) + try: + return int(str(raw)) + except Exception: + return default + + old = { + "max_upload_bytes": row.max_upload_bytes, + "default_ttl_seconds": row.default_ttl_seconds, + "max_ttl_seconds": row.max_ttl_seconds, + "captcha_provider": row.captcha_provider.value, + "password_mode": row.password_mode.value, + } + + row.max_upload_bytes = max(1, as_int("max_upload_mb", max(1, row.max_upload_bytes // 1048576))) * 1048576 + row.default_ttl_seconds = max(1, as_int("default_ttl_hours", max(1, row.default_ttl_seconds // 3600))) * 3600 + row.max_ttl_seconds = max(1, as_int("max_ttl_hours", max(1, row.max_ttl_seconds // 3600))) * 3600 + if row.default_ttl_seconds > row.max_ttl_seconds: + row.default_ttl_seconds = row.max_ttl_seconds + row.rate_limit_create_per_minute = as_int( + "rate_limit_create_per_minute", row.rate_limit_create_per_minute + ) + row.rate_limit_unwrap_per_minute = as_int( + "rate_limit_unwrap_per_minute", row.rate_limit_unwrap_per_minute + ) + row.rate_limit_admin_login_per_minute = as_int( + "rate_limit_admin_login_per_minute", row.rate_limit_admin_login_per_minute + ) + row.audit_retention_days = as_int("audit_retention_days", row.audit_retention_days) + row.turnstile_site_key = str(form.get("turnstile_site_key") or "").strip() + row.hcaptcha_site_key = str(form.get("hcaptcha_site_key") or "").strip() + + mime_raw = str(form.get("mime_allowlist") or "") + row.mime_allowlist = [line.strip() for line in mime_raw.splitlines() if line.strip()] + + captcha = str(form.get("captcha_provider") or "off") + try: + row.captcha_provider = CaptchaProvider(captcha) + except ValueError: + pass + + pwd_mode = str(form.get("password_mode") or "client_only") + try: + row.password_mode = PasswordMode(pwd_mode) + except ValueError: + pass + + await db.commit() + await write_audit( + db, + event_type="admin.settings_update", + success=True, + **meta, + details={"admin": admin, "old": old}, + ) + return RedirectResponse("/admin/settings?saved=1", status_code=302) + + +@router.post("/purge") +async def purge_all( + request: Request, + db: AsyncSession = Depends(get_db), + admin: AdminWebAuth = ..., +): + meta = request_meta(request) + form = await request.form() + confirm = str(form.get("confirm") or "").strip().upper() + if confirm != "PURGE": + await write_audit( + db, + event_type="admin.purge", + success=False, + **meta, + details={"admin": admin, "reason": "confirm_mismatch"}, + ) + return RedirectResponse("/admin/danger?purge=confirm", status_code=302) + + try: + stats = await purge_all_wraps(db) + await write_audit( + db, + event_type="admin.purge", + success=True, + **meta, + details={"admin": admin, **stats}, + ) + return RedirectResponse( + f"/admin/danger?purged=1&wraps={stats['wraps_deleted']}&objects={stats['objects_deleted']}", + status_code=302, + ) + except Exception as exc: + await write_audit( + db, + event_type="admin.purge", + success=False, + **meta, + details={"admin": admin, "reason": "error", "error": str(exc)[:200]}, + ) + return RedirectResponse("/admin/danger?purge=error", status_code=302) + + +@router.get("/danger") +async def danger_page( + request: Request, + _admin: AdminWebAuth = ..., +): + return templates.TemplateResponse( + request, + "admin_danger.html", + { + "title": "Danger zone", + "active": "danger", + }, + ) + + +@router.get("/audit") +async def audit_page( + request: Request, + db: AsyncSession = Depends(get_db), + _admin: AdminWebAuth = ..., +): + event_type = request.query_params.get("event_type") or None + wrap_id = request.query_params.get("wrap_id") or None + if event_type == "": + event_type = None + per_page = 50 + try: + page = max(1, int(request.query_params.get("page") or "1")) + except ValueError: + page = 1 + total = await count_audit(db, event_type=event_type, wrap_id=wrap_id or None) + pages = max(1, (total + per_page - 1) // per_page) if total else 1 + if page > pages: + page = pages + offset = (page - 1) * per_page + events = await list_audit( + db, + limit=per_page, + offset=offset, + event_type=event_type, + wrap_id=wrap_id or None, + ) + event_types = await list_audit_event_types(db) + from_idx = offset + 1 if total else 0 + to_idx = offset + len(events) + return templates.TemplateResponse( + request, + "admin_audit.html", + { + "title": "Audit", + "events": events, + "event_type": event_type or "", + "wrap_id": wrap_id or "", + "event_types": event_types, + "active": "audit", + "page": page, + "pages": pages, + "per_page": per_page, + "total": total, + "from_idx": from_idx, + "to_idx": to_idx, + "has_prev": page > 1, + "has_next": page < pages, + }, + ) + + +@api_router.get("/settings", summary="Get admin settings") +async def admin_settings_api( + db: AsyncSession = Depends(get_db), + _admin: AdminAuth = ..., +): + row = await get_or_create_settings(db) + return JSONResponse( + { + "max_upload_bytes": row.max_upload_bytes, + "default_ttl_seconds": row.default_ttl_seconds, + "max_ttl_seconds": row.max_ttl_seconds, + "mime_allowlist": row.mime_allowlist, + "captcha_provider": row.captcha_provider.value, + "password_mode": row.password_mode.value, + "audit_retention_days": row.audit_retention_days, + "rate_limit_create_per_minute": row.rate_limit_create_per_minute, + "rate_limit_unwrap_per_minute": row.rate_limit_unwrap_per_minute, + "rate_limit_admin_login_per_minute": row.rate_limit_admin_login_per_minute, + } + ) + + +@api_router.put("/settings", summary="Update admin settings") +async def admin_settings_put( + body: AdminSettingsUpdate, + request: Request, + db: AsyncSession = Depends(get_db), + admin: AdminAuth = ..., +): + row = await get_or_create_settings(db) + data = body.model_dump(exclude_unset=True) + if "captcha_provider" in data and data["captcha_provider"] is not None: + row.captcha_provider = CaptchaProvider(data.pop("captcha_provider")) + if "password_mode" in data and data["password_mode"] is not None: + row.password_mode = PasswordMode(data.pop("password_mode")) + for key, value in data.items(): + if value is not None and hasattr(row, key): + setattr(row, key, value) + await db.commit() + meta = request_meta(request) + await write_audit( + db, + event_type="admin.settings_update", + success=True, + **meta, + details={"admin": admin, "via": "api"}, + ) + return {"ok": True} + + +@api_router.post("/purge", summary="Force-delete all wraps and MinIO objects") +async def admin_purge_api( + request: Request, + db: AsyncSession = Depends(get_db), + admin: AdminAuth = ..., + confirm: str = "PURGE", +): + meta = request_meta(request) + if confirm.strip().upper() != "PURGE": + raise HTTPException(status_code=400, detail="confirm must be PURGE") + stats = await purge_all_wraps(db) + await write_audit( + db, + event_type="admin.purge", + success=True, + **meta, + details={"admin": admin, "via": "api", **stats}, + ) + return {"ok": True, **stats} + + +@api_router.get("/audit", summary="List audit events") +async def admin_audit_api( + db: AsyncSession = Depends(get_db), + _admin: AdminAuth = ..., + event_type: str | None = None, + wrap_id: str | None = None, + limit: int = 100, + offset: int = 0, +): + events = await list_audit( + db, + limit=min(limit, 500), + offset=max(0, offset), + event_type=event_type, + wrap_id=wrap_id, + ) + return [ + { + "id": str(e.id), + "created_at": e.created_at.isoformat() if e.created_at else None, + "event_type": e.event_type, + "wrap_id": e.wrap_id, + "success": e.success, + "ip": e.ip, + "user_agent": e.user_agent, + "details": e.details, + } + for e in events + ] diff --git a/app/api/wraps.py b/app/api/wraps.py new file mode 100644 index 0000000..b8227d3 --- /dev/null +++ b/app/api/wraps.py @@ -0,0 +1,331 @@ +from __future__ import annotations + +import base64 +from datetime import datetime, timedelta, timezone + +from fastapi import APIRouter, Depends, HTTPException, Request +from sqlalchemy.ext.asyncio import AsyncSession + +from app.db import get_db +from app.models import PasswordMode, Wrap, WrapStatus +from app.schemas import ( + PublicSettingsOut, + UnwrapRequest, + UnwrapResponse, + WrapCreateRequest, + WrapCreateResponse, +) +from app.services.audit import write_audit +from app.services.captcha import verify_captcha +from app.services.password_hash import hash_password, verify_password +from app.services.rate_limit import rate_limiter +from app.services.settings_service import get_or_create_settings, mime_allowed, public_settings_payload +from app.services.storage import storage +from app.services.wraps import delete_wrap_object, expire_due_wraps, new_wrap_id, request_meta + +router = APIRouter(prefix="/api/v1") + + +@router.get( + "/settings", + response_model=PublicSettingsOut, + tags=["Public"], + summary="Public client settings", +) +async def public_settings(db: AsyncSession = Depends(get_db)) -> PublicSettingsOut: + row = await get_or_create_settings(db) + return PublicSettingsOut(**public_settings_payload(row)) + + +@router.post( + "/wraps", + response_model=WrapCreateResponse, + tags=["Wraps"], + summary="Create encrypted wrap", +) +async def create_wrap( + body: WrapCreateRequest, + request: Request, + db: AsyncSession = Depends(get_db), +) -> WrapCreateResponse: + meta = request_meta(request) + settings = await get_or_create_settings(db) + ip = meta["ip"] or "unknown" + + if not rate_limiter.allow( + f"create:{ip}", settings.rate_limit_create_per_minute + ): + await write_audit( + db, + event_type="wrap.create", + success=False, + **meta, + details={"reason": "rate_limited"}, + ) + raise HTTPException(status_code=429, detail="rate_limited") + + ok, reason = await verify_captcha( + settings.captcha_provider, + body.captcha_token, + ip, + turnstile_site_configured=bool(settings.turnstile_site_key), + hcaptcha_site_configured=bool(settings.hcaptcha_site_key), + ) + if not ok: + await write_audit( + db, + event_type="wrap.create", + success=False, + **meta, + details={"reason": f"captcha_{reason}"}, + ) + raise HTTPException(status_code=400, detail="captcha_failed") + + if body.ttl_seconds > settings.max_ttl_seconds: + raise HTTPException(status_code=400, detail="ttl_too_large") + + try: + ciphertext = base64.b64decode(body.ciphertext_b64, validate=True) + except Exception as exc: + raise HTTPException(status_code=400, detail="invalid_ciphertext") from exc + + if len(ciphertext) > settings.max_upload_bytes: + await write_audit( + db, + event_type="wrap.create", + success=False, + **meta, + details={"reason": "too_large", "size": len(ciphertext)}, + ) + raise HTTPException(status_code=413, detail="too_large") + + allowlist = list(settings.mime_allowlist or []) + for ct in body.content_types: + if not mime_allowed(allowlist, ct): + await write_audit( + db, + event_type="wrap.create", + success=False, + **meta, + details={"reason": "mime_denied", "content_type": ct}, + ) + raise HTTPException(status_code=400, detail="mime_not_allowed") + + password_hash = None + if body.has_password: + if settings.password_mode == PasswordMode.server_gate: + if not body.password: + raise HTTPException(status_code=400, detail="password_required") + password_hash = hash_password(body.password) + + wrap_id = new_wrap_id() + object_key = f"wraps/{wrap_id}.bin" + now = datetime.now(timezone.utc) + expires_at = now + timedelta(seconds=body.ttl_seconds) + + await storage.put_bytes(object_key, ciphertext) + + wrap = Wrap( + id=wrap_id, + status=WrapStatus.pending, + object_key=object_key, + size_bytes=len(ciphertext), + content_types=body.content_types, + item_count=body.item_count, + has_password=body.has_password, + password_hash=password_hash, + password_mode=settings.password_mode, + expires_at=expires_at, + creator_ip=ip, + creator_ua=(meta["user_agent"] or "")[:512] or None, + ) + db.add(wrap) + await db.commit() + + await write_audit( + db, + event_type="wrap.create", + success=True, + wrap_id=wrap_id, + **meta, + details={ + "size_bytes": len(ciphertext), + "item_count": body.item_count, + "content_types": body.content_types, + "ttl_seconds": body.ttl_seconds, + "has_password": body.has_password, + "password_mode": settings.password_mode.value, + }, + ) + + return WrapCreateResponse( + wrap_id=wrap_id, + expires_at=expires_at, + password_mode=settings.password_mode.value, + share_path=f"/w/{wrap_id}", + ) + + +@router.post( + "/wraps/{wrap_id}/unwrap", + response_model=UnwrapResponse, + tags=["Wraps"], + summary="One-time unwrap", +) +async def unwrap( + wrap_id: str, + body: UnwrapRequest, + request: Request, + db: AsyncSession = Depends(get_db), +) -> UnwrapResponse: + meta = request_meta(request) + settings = await get_or_create_settings(db) + ip = meta["ip"] or "unknown" + + if not rate_limiter.allow( + f"unwrap:{ip}", settings.rate_limit_unwrap_per_minute + ): + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "rate_limited"}, + ) + raise HTTPException(status_code=429, detail="rate_limited") + + ok, reason = await verify_captcha( + settings.captcha_provider, + body.captcha_token, + ip, + turnstile_site_configured=bool(settings.turnstile_site_key), + hcaptcha_site_configured=bool(settings.hcaptcha_site_key), + ) + if not ok: + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": f"captcha_{reason}"}, + ) + raise HTTPException(status_code=400, detail="captcha_failed") + + await expire_due_wraps(db) + + from sqlalchemy import select + + result = await db.execute(select(Wrap).where(Wrap.id == wrap_id)) + wrap = result.scalar_one_or_none() + + # Uniform-ish failure for enumeration resistance + def fail(reason: str, status: int = 410) -> None: + raise HTTPException(status_code=status, detail=reason) + + if not wrap or wrap.status != WrapStatus.pending: + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "unavailable"}, + ) + fail("unavailable") + + assert wrap is not None + if wrap.expires_at <= datetime.now(timezone.utc): + wrap.status = WrapStatus.expired + await delete_wrap_object(db, wrap) + await db.commit() + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "expired"}, + ) + fail("unavailable") + + if ( + wrap.has_password + and wrap.password_mode == PasswordMode.server_gate + and wrap.password_hash + ): + if not body.password or not verify_password(wrap.password_hash, body.password): + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "bad_password"}, + ) + raise HTTPException(status_code=403, detail="bad_password") + + # Atomic consume + from sqlalchemy import update + + now = datetime.now(timezone.utc) + upd = await db.execute( + update(Wrap) + .where( + Wrap.id == wrap_id, + Wrap.status == WrapStatus.pending, + Wrap.expires_at > now, + ) + .values(status=WrapStatus.consumed, consumed_at=now) + .returning(Wrap.id) + ) + consumed = upd.scalar_one_or_none() + await db.commit() + if not consumed: + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "unavailable"}, + ) + fail("unavailable") + + try: + data = await storage.get_bytes(wrap.object_key) + except Exception: + await write_audit( + db, + event_type="wrap.unwrap", + success=False, + wrap_id=wrap_id, + **meta, + details={"reason": "storage_error"}, + ) + raise HTTPException(status_code=500, detail="storage_error") from None + finally: + await delete_wrap_object(db, wrap) + + await write_audit( + db, + event_type="wrap.unwrap", + success=True, + wrap_id=wrap_id, + **meta, + details={ + "size_bytes": wrap.size_bytes, + "item_count": wrap.item_count, + "content_types": wrap.content_types, + }, + ) + + return UnwrapResponse( + ciphertext_b64=base64.b64encode(data).decode("ascii"), + content_types=list(wrap.content_types or []), + item_count=wrap.item_count, + has_password=wrap.has_password, + password_mode=wrap.password_mode.value, + size_bytes=wrap.size_bytes, + ) diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..0c4715b --- /dev/null +++ b/app/config.py @@ -0,0 +1,52 @@ +from functools import lru_cache + +from pydantic_settings import BaseSettings, SettingsConfigDict + + +class Settings(BaseSettings): + model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") + + app_name: str = "Wrapped" + app_env: str = "development" + app_secret_key: str = "change-me" + app_base_url: str = "http://localhost:8000" + log_level: str = "INFO" + # Swagger / ReDoc / openapi.json. Default: on in development, off otherwise. + docs_enabled: bool | None = None + + admin_username: str = "admin" + admin_password: str = "38dmWjE1p" + + database_url: str = "postgresql+asyncpg://wrapped:wrapped@localhost:5432/wrapped" + + s3_endpoint_url: str = "http://localhost:9000" + s3_access_key: str = "wrappedminio" + s3_secret_key: str = "wrappedminio123" + s3_bucket: str = "wrapped" + s3_region: str = "us-east-1" + s3_use_ssl: bool = False + s3_create_bucket: bool = True + + turnstile_secret_key: str = "" + hcaptcha_secret_key: str = "" + + session_cookie_name: str = "wrapped_admin" + session_max_age: int = 60 * 60 * 12 + + # Comma-separated IPs/CIDRs allowed to set X-Forwarded-For / X-Real-IP. + # Use * to trust any peer (recommended in k8s when only Ingress reaches the pod). + # Default: loopback + RFC1918 + Docker Desktop gateway range. + trusted_proxies: str = ( + "127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,192.168.65.0/24" + ) + + @property + def is_docs_enabled(self) -> bool: + if self.docs_enabled is not None: + return self.docs_enabled + return self.app_env.lower() in {"development", "dev", "local"} + + +@lru_cache +def get_settings() -> Settings: + return Settings() diff --git a/app/db.py b/app/db.py new file mode 100644 index 0000000..fab4d1e --- /dev/null +++ b/app/db.py @@ -0,0 +1,20 @@ +from collections.abc import AsyncGenerator + +from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine +from sqlalchemy.orm import DeclarativeBase + +from app.config import get_settings + + +class Base(DeclarativeBase): + pass + + +settings = get_settings() +engine = create_async_engine(settings.database_url, pool_pre_ping=True, echo=False) +SessionLocal = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) + + +async def get_db() -> AsyncGenerator[AsyncSession, None]: + async with SessionLocal() as session: + yield session diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..4617823 --- /dev/null +++ b/app/main.py @@ -0,0 +1,150 @@ +from __future__ import annotations + +from contextlib import asynccontextmanager + +from fastapi import FastAPI, HTTPException, Request +from fastapi.openapi.utils import get_openapi +from fastapi.responses import RedirectResponse +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates +from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware + +from app.api import admin, wraps +from app.config import get_settings +from app.db import SessionLocal +from app.services.settings_service import get_or_create_settings +from app.services.storage import storage + +OPENAPI_TAGS = [ + { + "name": "System", + "description": "Service health and runtime checks.", + }, + { + "name": "Public", + "description": "Anonymous client configuration (limits, captcha, password mode).", + }, + { + "name": "Wraps", + "description": "Zero-knowledge create / one-time unwrap of encrypted packages.", + }, + { + "name": "Admin", + "description": "Protected admin JSON API. Authorize with HTTP Basic (admin username/password from env).", + }, +] + + +@asynccontextmanager +async def lifespan(_app: FastAPI): + await storage.ensure_bucket() + async with SessionLocal() as db: + await get_or_create_settings(db) + yield + + +def custom_openapi(app: FastAPI): + if app.openapi_schema: + return app.openapi_schema + schema = get_openapi( + title=app.title, + version=app.version, + description=app.description, + routes=app.routes, + tags=OPENAPI_TAGS, + ) + schema.setdefault("components", {}).setdefault("securitySchemes", {}) + schema["components"]["securitySchemes"]["HTTPBasic"] = { + "type": "http", + "scheme": "basic", + "description": "Admin username and password from environment (ADMIN_USERNAME / ADMIN_PASSWORD).", + } + # Mark Admin-tagged operations as secured + for path_item in schema.get("paths", {}).values(): + for operation in path_item.values(): + if not isinstance(operation, dict): + continue + if "Admin" in (operation.get("tags") or []): + operation["security"] = [{"HTTPBasic": []}] + app.openapi_schema = schema + return app.openapi_schema + + +def create_app() -> FastAPI: + settings = get_settings() + docs_on = settings.is_docs_enabled + app = FastAPI( + title=settings.app_name, + version="0.1.0", + description=( + "Wrapped — zero-knowledge one-time encrypted drop.\n\n" + "Public wrap APIs are anonymous. Admin APIs require HTTP Basic." + ), + lifespan=lifespan, + openapi_tags=OPENAPI_TAGS if docs_on else None, + docs_url="/docs" if docs_on else None, + redoc_url="/redoc" if docs_on else None, + openapi_url="/openapi.json" if docs_on else None, + ) + + # Honor X-Forwarded-For / X-Real-IP from ingress / reverse proxies. + trusted = (settings.trusted_proxies or "").strip() or "*" + app.add_middleware(ProxyHeadersMiddleware, trusted_hosts=trusted) + + app.mount("/static", StaticFiles(directory="app/static"), name="static") + app.include_router(wraps.router) + app.include_router(admin.router) + app.include_router(admin.api_router) + + templates = Jinja2Templates(directory="app/templates") + + @app.get("/health", tags=["System"], summary="Health check", include_in_schema=docs_on) + async def health(): + return {"status": "ok", "service": settings.app_name} + + @app.get("/", include_in_schema=False) + async def index(request: Request): + return templates.TemplateResponse( + request, + "create.html", + {"title": "Wrapped", "page": "create"}, + ) + + @app.get("/w/{wrap_id}", include_in_schema=False) + async def unwrap_page(request: Request, wrap_id: str): + return templates.TemplateResponse( + request, + "unwrap.html", + {"title": "Unwrap", "page": "unwrap", "wrap_id": wrap_id}, + ) + + @app.get("/unwrap", include_in_schema=False) + async def unwrap_token_page(request: Request): + return templates.TemplateResponse( + request, + "unwrap.html", + {"title": "Unwrap", "page": "unwrap", "wrap_id": ""}, + ) + + @app.exception_handler(HTTPException) + async def http_exception_handler(request: Request, exc: HTTPException): + if ( + exc.status_code == 401 + and request.url.path.startswith("/admin") + and not request.url.path.startswith("/admin/api") + ): + return RedirectResponse("/admin/login", status_code=302) + from fastapi.responses import JSONResponse + + return JSONResponse( + status_code=exc.status_code, + content={"detail": exc.detail}, + headers=exc.headers, + ) + + if docs_on: + app.openapi = lambda: custom_openapi(app) + return app + + +app = create_app() diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..7b97835 --- /dev/null +++ b/app/models.py @@ -0,0 +1,152 @@ +from __future__ import annotations + +import enum +from datetime import datetime +from typing import Any +from uuid import uuid4 + +from sqlalchemy import ( + BigInteger, + Boolean, + DateTime, + Enum, + Index, + Integer, + String, + Text, + func, +) +from sqlalchemy.dialects.postgresql import JSONB, UUID +from sqlalchemy.orm import Mapped, mapped_column + +from app.db import Base + + +class WrapStatus(str, enum.Enum): + pending = "pending" + consumed = "consumed" + expired = "expired" + + +class PasswordMode(str, enum.Enum): + client_only = "client_only" + server_gate = "server_gate" + + +class CaptchaProvider(str, enum.Enum): + off = "off" + turnstile = "turnstile" + hcaptcha = "hcaptcha" + + +class AppSettings(Base): + __tablename__ = "app_settings" + + id: Mapped[int] = mapped_column(Integer, primary_key=True, default=1) + max_upload_bytes: Mapped[int] = mapped_column(BigInteger, default=25 * 1024 * 1024) + default_ttl_seconds: Mapped[int] = mapped_column(Integer, default=24 * 3600) + max_ttl_seconds: Mapped[int] = mapped_column(Integer, default=7 * 24 * 3600) + mime_allowlist: Mapped[list[Any]] = mapped_column( + JSONB, + default=list, + ) + rate_limit_create_per_minute: Mapped[int] = mapped_column(Integer, default=10) + rate_limit_unwrap_per_minute: Mapped[int] = mapped_column(Integer, default=30) + rate_limit_admin_login_per_minute: Mapped[int] = mapped_column(Integer, default=5) + captcha_provider: Mapped[CaptchaProvider] = mapped_column( + Enum(CaptchaProvider, name="captcha_provider"), + default=CaptchaProvider.off, + ) + turnstile_site_key: Mapped[str] = mapped_column(String(256), default="") + hcaptcha_site_key: Mapped[str] = mapped_column(String(256), default="") + password_mode: Mapped[PasswordMode] = mapped_column( + Enum(PasswordMode, name="password_mode"), + default=PasswordMode.client_only, + ) + audit_retention_days: Mapped[int] = mapped_column(Integer, default=90) + updated_at: Mapped[datetime] = mapped_column( + DateTime(timezone=True), server_default=func.now(), onupdate=func.now() + ) + + +class Wrap(Base): + __tablename__ = "wraps" + __table_args__ = (Index("ix_wraps_expires_at", "expires_at"),) + + id: Mapped[str] = mapped_column(String(32), primary_key=True) + status: Mapped[WrapStatus] = mapped_column( + Enum(WrapStatus, name="wrap_status"), + default=WrapStatus.pending, + index=True, + ) + object_key: Mapped[str] = mapped_column(String(512), unique=True) + size_bytes: Mapped[int] = mapped_column(BigInteger) + content_types: Mapped[list[Any]] = mapped_column(JSONB, default=list) + item_count: Mapped[int] = mapped_column(Integer, default=1) + has_password: Mapped[bool] = mapped_column(Boolean, default=False) + password_hash: Mapped[str | None] = mapped_column(Text, nullable=True) + password_mode: Mapped[PasswordMode] = mapped_column( + Enum(PasswordMode, name="password_mode", create_constraint=False), + default=PasswordMode.client_only, + ) + created_at: Mapped[datetime] = mapped_column( + DateTime(timezone=True), server_default=func.now(), index=True + ) + expires_at: Mapped[datetime] = mapped_column(DateTime(timezone=True)) + consumed_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True) + creator_ip: Mapped[str | None] = mapped_column(String(64), nullable=True) + creator_ua: Mapped[str | None] = mapped_column(String(512), nullable=True) + + +class AuditEvent(Base): + __tablename__ = "audit_events" + __table_args__ = ( + Index("ix_audit_created_at", "created_at"), + Index("ix_audit_event_type", "event_type"), + ) + + id: Mapped[Any] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid4) + created_at: Mapped[datetime] = mapped_column( + DateTime(timezone=True), server_default=func.now() + ) + event_type: Mapped[str] = mapped_column(String(64)) + wrap_id: Mapped[str | None] = mapped_column(String(32), nullable=True, index=True) + success: Mapped[bool] = mapped_column(Boolean, default=True) + ip: Mapped[str | None] = mapped_column(String(64), nullable=True) + user_agent: Mapped[str | None] = mapped_column(String(512), nullable=True) + accept_language: Mapped[str | None] = mapped_column(String(128), nullable=True) + forwarded_for: Mapped[str | None] = mapped_column(String(256), nullable=True) + details: Mapped[dict[str, Any]] = mapped_column(JSONB, default=dict) + + +DEFAULT_MIME_ALLOWLIST = [ + "image/*", + "image/png", + "image/jpeg", + "image/gif", + "image/webp", + "image/svg+xml", + "text/*", + "text/plain", + "text/markdown", + "text/csv", + "text/html", + "text/css", + "text/javascript", + "application/json", + "application/xml", + "application/pdf", + "application/zip", + "application/x-zip-compressed", + "application/gzip", + "application/x-gzip", + "application/x-tar", + "application/x-7z-compressed", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.openxmlformats-officedocument.presentationml.presentation", + "application/msword", + "application/vnd.ms-excel", + "audio/*", + "video/*", +] diff --git a/app/schemas.py b/app/schemas.py new file mode 100644 index 0000000..c52e44c --- /dev/null +++ b/app/schemas.py @@ -0,0 +1,82 @@ +from __future__ import annotations + +from datetime import datetime +from typing import Any + +from pydantic import BaseModel, Field + + +class PublicSettingsOut(BaseModel): + max_upload_bytes: int + default_ttl_seconds: int + max_ttl_seconds: int + mime_allowlist: list[str] + captcha_provider: str + turnstile_site_key: str + hcaptcha_site_key: str + password_mode: str + password_mode_description: dict[str, str] + + +class WrapCreateRequest(BaseModel): + ciphertext_b64: str = Field(..., min_length=1) + ttl_seconds: int = Field(..., gt=0) + content_types: list[str] = Field(default_factory=list) + item_count: int = Field(default=1, ge=1, le=100) + has_password: bool = False + password: str | None = None + captcha_token: str | None = None + + +class WrapCreateResponse(BaseModel): + wrap_id: str + expires_at: datetime + password_mode: str + share_path: str + + +class UnwrapRequest(BaseModel): + password: str | None = None + captcha_token: str | None = None + + +class UnwrapResponse(BaseModel): + ciphertext_b64: str + content_types: list[str] + item_count: int + has_password: bool + password_mode: str + size_bytes: int + + +class AdminLoginRequest(BaseModel): + username: str + password: str + + +class AdminSettingsUpdate(BaseModel): + max_upload_bytes: int | None = None + default_ttl_seconds: int | None = None + max_ttl_seconds: int | None = None + mime_allowlist: list[str] | None = None + rate_limit_create_per_minute: int | None = None + rate_limit_unwrap_per_minute: int | None = None + rate_limit_admin_login_per_minute: int | None = None + captcha_provider: str | None = None + turnstile_site_key: str | None = None + hcaptcha_site_key: str | None = None + password_mode: str | None = None + audit_retention_days: int | None = None + + +class AuditEventOut(BaseModel): + id: str + created_at: datetime + event_type: str + wrap_id: str | None + success: bool + ip: str | None + user_agent: str | None + accept_language: str | None + forwarded_for: str | None + details: dict[str, Any] diff --git a/app/services/__init__.py b/app/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/services/admin_auth.py b/app/services/admin_auth.py new file mode 100644 index 0000000..51ab836 --- /dev/null +++ b/app/services/admin_auth.py @@ -0,0 +1,93 @@ +from __future__ import annotations + +import secrets +from typing import Annotated + +from fastapi import Depends, HTTPException, Request +from fastapi.security import HTTPBasic, HTTPBasicCredentials +from itsdangerous import BadSignature, SignatureExpired, URLSafeTimedSerializer +from starlette.responses import Response + +from app.config import get_settings + +http_basic = HTTPBasic(auto_error=False) + + +def _serializer() -> URLSafeTimedSerializer: + settings = get_settings() + return URLSafeTimedSerializer(settings.app_secret_key, salt="wrapped-admin") + + +def create_session_token(username: str) -> str: + return _serializer().dumps({"u": username}) + + +def read_session_token(token: str, max_age: int) -> str | None: + try: + data = _serializer().loads(token, max_age=max_age) + return data.get("u") + except (BadSignature, SignatureExpired, Exception): + return None + + +def set_admin_cookie(response: Response, username: str) -> None: + settings = get_settings() + token = create_session_token(username) + response.set_cookie( + settings.session_cookie_name, + token, + httponly=True, + samesite="lax", + max_age=settings.session_max_age, + secure=settings.app_env == "production", + path="/", + ) + + +def clear_admin_cookie(response: Response) -> None: + settings = get_settings() + response.delete_cookie(settings.session_cookie_name, path="/") + + +def get_admin_user(request: Request) -> str | None: + settings = get_settings() + token = request.cookies.get(settings.session_cookie_name) + if not token: + return None + return read_session_token(token, settings.session_max_age) + + +def _basic_ok(credentials: HTTPBasicCredentials) -> bool: + settings = get_settings() + user_ok = secrets.compare_digest(credentials.username, settings.admin_username) + pass_ok = secrets.compare_digest(credentials.password, settings.admin_password) + return user_ok and pass_ok + + +async def require_admin_web(request: Request) -> str: + """Cookie-only auth for HTML admin pages (redirect via exception handler).""" + cookie_user = get_admin_user(request) + if cookie_user: + return cookie_user + raise HTTPException(status_code=401, detail="unauthorized") + + +async def require_admin_api( + request: Request, + credentials: Annotated[HTTPBasicCredentials | None, Depends(http_basic)] = None, +) -> str: + """Cookie or HTTP Basic — for JSON admin API / Swagger.""" + cookie_user = get_admin_user(request) + if cookie_user: + return cookie_user + if credentials and _basic_ok(credentials): + return credentials.username + raise HTTPException( + status_code=401, + detail="unauthorized", + headers={"WWW-Authenticate": "Basic"}, + ) + + +AdminWebAuth = Annotated[str, Depends(require_admin_web)] +AdminAuth = Annotated[str, Depends(require_admin_api)] diff --git a/app/services/audit.py b/app/services/audit.py new file mode 100644 index 0000000..dd74fc3 --- /dev/null +++ b/app/services/audit.py @@ -0,0 +1,97 @@ +from __future__ import annotations + +from datetime import datetime, timedelta, timezone +from typing import Any + +from sqlalchemy import delete, func, select +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models import AuditEvent + +KNOWN_AUDIT_EVENT_TYPES = [ + "wrap.create", + "wrap.unwrap", + "admin.login", + "admin.logout", + "admin.settings_update", + "admin.purge", +] + + +async def write_audit( + db: AsyncSession, + *, + event_type: str, + success: bool, + wrap_id: str | None = None, + ip: str | None = None, + user_agent: str | None = None, + accept_language: str | None = None, + forwarded_for: str | None = None, + details: dict[str, Any] | None = None, +) -> None: + event = AuditEvent( + event_type=event_type, + success=success, + wrap_id=wrap_id, + ip=ip, + user_agent=(user_agent or "")[:512] or None, + accept_language=(accept_language or "")[:128] or None, + forwarded_for=(forwarded_for or "")[:256] or None, + details=details or {}, + ) + db.add(event) + await db.commit() + + +async def purge_old_audit(db: AsyncSession, retention_days: int) -> int: + cutoff = datetime.now(timezone.utc) - timedelta(days=retention_days) + result = await db.execute(delete(AuditEvent).where(AuditEvent.created_at < cutoff)) + await db.commit() + return result.rowcount or 0 + + +def _audit_filters(event_type: str | None, wrap_id: str | None): + filters = [] + if event_type: + filters.append(AuditEvent.event_type == event_type) + if wrap_id: + filters.append(AuditEvent.wrap_id == wrap_id) + return filters + + +async def list_audit( + db: AsyncSession, + *, + limit: int = 100, + offset: int = 0, + event_type: str | None = None, + wrap_id: str | None = None, +) -> list[AuditEvent]: + stmt = select(AuditEvent).order_by(AuditEvent.created_at.desc()).offset(offset).limit(limit) + for f in _audit_filters(event_type, wrap_id): + stmt = stmt.where(f) + result = await db.execute(stmt) + return list(result.scalars().all()) + + +async def count_audit( + db: AsyncSession, + *, + event_type: str | None = None, + wrap_id: str | None = None, +) -> int: + stmt = select(func.count()).select_from(AuditEvent) + for f in _audit_filters(event_type, wrap_id): + stmt = stmt.where(f) + result = await db.execute(stmt) + return int(result.scalar_one() or 0) + + +async def list_audit_event_types(db: AsyncSession) -> list[str]: + """Known types plus distinct values already stored in DB (dynamic dropdown).""" + result = await db.execute( + select(AuditEvent.event_type).distinct().order_by(AuditEvent.event_type) + ) + from_db = [row[0] for row in result.all() if row[0]] + return sorted(set(KNOWN_AUDIT_EVENT_TYPES) | set(from_db)) diff --git a/app/services/captcha.py b/app/services/captcha.py new file mode 100644 index 0000000..a562d93 --- /dev/null +++ b/app/services/captcha.py @@ -0,0 +1,59 @@ +from __future__ import annotations + +import httpx + +from app.config import get_settings +from app.models import CaptchaProvider + + +async def verify_captcha( + provider: CaptchaProvider, + token: str | None, + remote_ip: str | None, + *, + turnstile_site_configured: bool, + hcaptcha_site_configured: bool, +) -> tuple[bool, str]: + if provider == CaptchaProvider.off: + return True, "off" + + if not token: + return False, "missing_token" + + settings = get_settings() + + if provider == CaptchaProvider.turnstile: + if not turnstile_site_configured: + return False, "turnstile_not_configured" + secret = settings.turnstile_secret_key + if not secret: + return False, "turnstile_secret_missing" + return await _post_verify( + "https://challenges.cloudflare.com/turnstile/v0/siteverify", + {"secret": secret, "response": token, "remoteip": remote_ip or ""}, + ) + + if provider == CaptchaProvider.hcaptcha: + if not hcaptcha_site_configured: + return False, "hcaptcha_not_configured" + secret = settings.hcaptcha_secret_key + if not secret: + return False, "hcaptcha_secret_missing" + return await _post_verify( + "https://hcaptcha.com/siteverify", + {"secret": secret, "response": token, "remoteip": remote_ip or ""}, + ) + + return False, "unknown_provider" + + +async def _post_verify(url: str, data: dict) -> tuple[bool, str]: + try: + async with httpx.AsyncClient(timeout=10.0) as client: + resp = await client.post(url, data=data) + payload = resp.json() + if payload.get("success"): + return True, "ok" + return False, "verify_failed" + except Exception: + return False, "verify_error" diff --git a/app/services/cleanup.py b/app/services/cleanup.py new file mode 100644 index 0000000..97d08fe --- /dev/null +++ b/app/services/cleanup.py @@ -0,0 +1,47 @@ +from __future__ import annotations + +from datetime import datetime, timezone + +from sqlalchemy import and_, or_, select +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models import Wrap, WrapStatus +from app.services.storage import storage + + +async def purge_expired_wraps(db: AsyncSession) -> int: + now = datetime.now(timezone.utc) + result = await db.execute( + select(Wrap).where( + and_( + Wrap.status == WrapStatus.pending, + Wrap.expires_at < now, + ) + ) + ) + wraps = list(result.scalars().all()) + count = 0 + for wrap in wraps: + try: + await storage.delete(wrap.object_key) + except Exception: + pass + wrap.status = WrapStatus.expired + count += 1 + if count: + await db.commit() + return count + + +async def cleanup_consumed_orphans(db: AsyncSession) -> int: + """Best-effort: mark very old pending with missing logic already handled elsewhere.""" + result = await db.execute( + select(Wrap).where( + or_( + Wrap.status == WrapStatus.consumed, + Wrap.status == WrapStatus.expired, + ) + ).limit(0) + ) + _ = result + return 0 diff --git a/app/services/client_ip.py b/app/services/client_ip.py new file mode 100644 index 0000000..3d00b41 --- /dev/null +++ b/app/services/client_ip.py @@ -0,0 +1,139 @@ +from __future__ import annotations + +import ipaddress +import re + +from fastapi import Request + +from app.config import get_settings + +_FORWARDED_FOR_RE = re.compile(r"for=(?:\"?\[?)([^;\"\\]\S*)", re.IGNORECASE) + + +def _parse_ip(value: str | None) -> str | None: + if not value: + return None + raw = value.strip().strip('"').strip() + if not raw or raw.lower() == "unknown": + return None + # [IPv6]:port or IPv4:port + if raw.startswith("["): + end = raw.find("]") + if end != -1: + raw = raw[1:end] + elif raw.count(":") == 1 and "." in raw: + raw = raw.rsplit(":", 1)[0] + try: + addr = ipaddress.ip_address(raw) + except ValueError: + return None + # Normalize IPv4-mapped IPv6 (::ffff:1.2.3.4 → 1.2.3.4) + if isinstance(addr, ipaddress.IPv6Address) and addr.ipv4_mapped: + return str(addr.ipv4_mapped) + return str(addr) + + +def _peer_ip(request: Request) -> str | None: + if request.client and request.client.host: + return _parse_ip(request.client.host) or request.client.host + return None + + +def _trusted_proxy_nets() -> list[ipaddress.IPv4Network | ipaddress.IPv6Network] | None: + """None means trust any peer (TRUSTED_PROXIES=*).""" + raw = (get_settings().trusted_proxies or "").strip() + if not raw or raw == "*": + return None + nets: list[ipaddress.IPv4Network | ipaddress.IPv6Network] = [] + for part in raw.split(","): + part = part.strip() + if not part: + continue + try: + if "/" in part: + nets.append(ipaddress.ip_network(part, strict=False)) + else: + ip = ipaddress.ip_address(part) + nets.append(ipaddress.ip_network(f"{ip}/{ip.max_prefixlen}")) + except ValueError: + continue + return nets + + +def _is_trusted_peer(peer: str | None) -> bool: + if not peer: + return False + nets = _trusted_proxy_nets() + if nets is None: + return True + try: + addr = ipaddress.ip_address(peer) + except ValueError: + return False + return any(addr in net for net in nets) + + +def _ips_from_forwarded_for(header: str | None) -> list[str]: + if not header: + return [] + out: list[str] = [] + for part in header.split(","): + ip = _parse_ip(part) + if ip: + out.append(ip) + return out + + +def _ips_from_forwarded(header: str | None) -> list[str]: + if not header: + return [] + out: list[str] = [] + for match in _FORWARDED_FOR_RE.finditer(header): + ip = _parse_ip(match.group(1)) + if ip: + out.append(ip) + return out + + +def client_ip(request: Request) -> str | None: + """ + Resolve the original client IP. + + When the immediate peer is a trusted proxy, prefer (in order): + CF-Connecting-IP, True-Client-IP, X-Real-IP, left-most X-Forwarded-For, + RFC 7239 Forwarded. Otherwise use the TCP peer address. + """ + peer = _peer_ip(request) + if _is_trusted_peer(peer): + for header in ("cf-connecting-ip", "true-client-ip", "x-real-ip"): + ip = _parse_ip(request.headers.get(header)) + if ip: + return ip + chain = _ips_from_forwarded_for(request.headers.get("x-forwarded-for")) + if chain: + return chain[0] + chain = _ips_from_forwarded(request.headers.get("forwarded")) + if chain: + return chain[0] + return peer + + +def request_meta(request: Request) -> dict[str, str | None]: + forwarded = request.headers.get("x-forwarded-for") + real_ip = request.headers.get("x-real-ip") + cf_ip = request.headers.get("cf-connecting-ip") + forwarded_store = forwarded or real_ip or cf_ip + return { + "ip": client_ip(request), + "user_agent": request.headers.get("user-agent"), + "accept_language": request.headers.get("accept-language"), + "forwarded_for": (forwarded_store or "")[:256] or None, + } + + +def uvicorn_forwarded_allow_ips() -> str: + """Value for uvicorn --forwarded-allow-ips (CIDRs not supported → * or IP list).""" + raw = (get_settings().trusted_proxies or "").strip() + if not raw or raw == "*" or "/" in raw: + return "*" + return raw diff --git a/app/services/password_hash.py b/app/services/password_hash.py new file mode 100644 index 0000000..0ffde78 --- /dev/null +++ b/app/services/password_hash.py @@ -0,0 +1,19 @@ +from __future__ import annotations + +from argon2 import PasswordHasher +from argon2.exceptions import VerifyMismatchError + +_ph = PasswordHasher() + + +def hash_password(password: str) -> str: + return _ph.hash(password) + + +def verify_password(password_hash: str, password: str) -> bool: + try: + return _ph.verify(password_hash, password) + except VerifyMismatchError: + return False + except Exception: + return False diff --git a/app/services/rate_limit.py b/app/services/rate_limit.py new file mode 100644 index 0000000..b2433c0 --- /dev/null +++ b/app/services/rate_limit.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +import time +from collections import defaultdict, deque +from threading import Lock + + +class RateLimiter: + """In-memory sliding window limiter (per process). Good enough for single-replica / dev.""" + + def __init__(self) -> None: + self._hits: dict[str, deque[float]] = defaultdict(deque) + self._lock = Lock() + + def allow(self, key: str, limit: int, window_seconds: int = 60) -> bool: + if limit <= 0: + return True + now = time.monotonic() + with self._lock: + q = self._hits[key] + while q and now - q[0] > window_seconds: + q.popleft() + if len(q) >= limit: + return False + q.append(now) + return True + + +rate_limiter = RateLimiter() diff --git a/app/services/settings_service.py b/app/services/settings_service.py new file mode 100644 index 0000000..bf5dfc5 --- /dev/null +++ b/app/services/settings_service.py @@ -0,0 +1,72 @@ +from __future__ import annotations + +from sqlalchemy import select +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models import ( + DEFAULT_MIME_ALLOWLIST, + AppSettings, + CaptchaProvider, + PasswordMode, +) + + +PASSWORD_MODE_HELP = { + "client_only": ( + "Password is verified only in the browser after ciphertext download. " + "Maximum zero-knowledge: the server never checks the password. " + "Best when you trust link secrecy and want strongest ZK." + ), + "server_gate": ( + "Server stores an Argon2id hash and releases ciphertext only after a correct password. " + "Slightly weaker ZK metadata (server knows password success/fail) but stops offline " + "bruteforce if someone steals the share link without the password." + ), +} + + +async def get_or_create_settings(db: AsyncSession) -> AppSettings: + result = await db.execute(select(AppSettings).where(AppSettings.id == 1)) + row = result.scalar_one_or_none() + if row: + return row + row = AppSettings( + id=1, + mime_allowlist=list(DEFAULT_MIME_ALLOWLIST), + captcha_provider=CaptchaProvider.off, + password_mode=PasswordMode.client_only, + ) + db.add(row) + await db.commit() + await db.refresh(row) + return row + + +def mime_allowed(allowlist: list[str], content_type: str) -> bool: + ct = (content_type or "").split(";")[0].strip().lower() + if not ct: + return False + for pattern in allowlist: + p = pattern.strip().lower() + if not p: + continue + if p.endswith("/*"): + if ct.startswith(p[:-1]): + return True + elif ct == p: + return True + return False + + +def public_settings_payload(row: AppSettings) -> dict: + return { + "max_upload_bytes": row.max_upload_bytes, + "default_ttl_seconds": row.default_ttl_seconds, + "max_ttl_seconds": row.max_ttl_seconds, + "mime_allowlist": list(row.mime_allowlist or []), + "captcha_provider": row.captcha_provider.value, + "turnstile_site_key": row.turnstile_site_key or "", + "hcaptcha_site_key": row.hcaptcha_site_key or "", + "password_mode": row.password_mode.value, + "password_mode_description": PASSWORD_MODE_HELP, + } diff --git a/app/services/storage.py b/app/services/storage.py new file mode 100644 index 0000000..415f58a --- /dev/null +++ b/app/services/storage.py @@ -0,0 +1,89 @@ +from __future__ import annotations + +from contextlib import asynccontextmanager +from typing import Any, AsyncIterator + +from aiobotocore.session import get_session + +from app.config import get_settings + + +class ObjectStorage: + def __init__(self) -> None: + self.settings = get_settings() + + def _client_kwargs(self) -> dict[str, Any]: + return { + "endpoint_url": self.settings.s3_endpoint_url, + "aws_access_key_id": self.settings.s3_access_key, + "aws_secret_access_key": self.settings.s3_secret_key, + "region_name": self.settings.s3_region, + "use_ssl": self.settings.s3_use_ssl, + } + + @asynccontextmanager + async def client(self) -> AsyncIterator[Any]: + session = get_session() + async with session.create_client("s3", **self._client_kwargs()) as client: + yield client + + async def ensure_bucket(self) -> None: + if not self.settings.s3_create_bucket: + return + async with self.client() as client: + try: + await client.head_bucket(Bucket=self.settings.s3_bucket) + except Exception: + await client.create_bucket(Bucket=self.settings.s3_bucket) + + async def put_bytes(self, key: str, data: bytes, content_type: str = "application/octet-stream") -> None: + async with self.client() as client: + await client.put_object( + Bucket=self.settings.s3_bucket, + Key=key, + Body=data, + ContentType=content_type, + ) + + async def get_bytes(self, key: str) -> bytes: + async with self.client() as client: + resp = await client.get_object(Bucket=self.settings.s3_bucket, Key=key) + async with resp["Body"] as stream: + return await stream.read() + + async def delete(self, key: str) -> None: + async with self.client() as client: + await client.delete_object(Bucket=self.settings.s3_bucket, Key=key) + + async def delete_prefix(self, prefix: str = "wraps/") -> int: + """Delete all objects under prefix. Returns number of deleted keys.""" + deleted = 0 + async with self.client() as client: + token: str | None = None + while True: + kwargs: dict[str, Any] = { + "Bucket": self.settings.s3_bucket, + "Prefix": prefix, + "MaxKeys": 1000, + } + if token: + kwargs["ContinuationToken"] = token + resp = await client.list_objects_v2(**kwargs) + contents = resp.get("Contents") or [] + if contents: + # delete_objects accepts up to 1000 keys + await client.delete_objects( + Bucket=self.settings.s3_bucket, + Delete={ + "Objects": [{"Key": obj["Key"]} for obj in contents], + "Quiet": True, + }, + ) + deleted += len(contents) + if not resp.get("IsTruncated"): + break + token = resp.get("NextContinuationToken") + return deleted + + +storage = ObjectStorage() diff --git a/app/services/util.py b/app/services/util.py new file mode 100644 index 0000000..1c0fbda --- /dev/null +++ b/app/services/util.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +import secrets +from datetime import datetime, timedelta, timezone + +from app.services.client_ip import client_ip, request_meta + + +def new_wrap_id() -> str: + return secrets.token_urlsafe(18).replace("-", "").replace("_", "")[:24] + + +def expires_at_from_ttl(ttl_seconds: int) -> datetime: + return datetime.now(timezone.utc) + timedelta(seconds=ttl_seconds) + + +__all__ = ["client_ip", "request_meta", "new_wrap_id", "expires_at_from_ttl"] diff --git a/app/services/wraps.py b/app/services/wraps.py new file mode 100644 index 0000000..ecb7739 --- /dev/null +++ b/app/services/wraps.py @@ -0,0 +1,75 @@ +from __future__ import annotations + +import secrets +from datetime import datetime, timezone + +from sqlalchemy import delete, select, update +from sqlalchemy.ext.asyncio import AsyncSession + +from app.models import Wrap, WrapStatus +from app.services.client_ip import client_ip, request_meta +from app.services.storage import storage + + +def new_wrap_id() -> str: + return secrets.token_urlsafe(18).replace("-", "").replace("_", "")[:24] + + +async def expire_due_wraps(db: AsyncSession) -> int: + now = datetime.now(timezone.utc) + result = await db.execute( + select(Wrap).where(Wrap.status == WrapStatus.pending, Wrap.expires_at <= now) + ) + rows = list(result.scalars().all()) + for wrap in rows: + try: + await storage.delete(wrap.object_key) + except Exception: + pass + wrap.status = WrapStatus.expired + if rows: + await db.commit() + return len(rows) + + +async def delete_wrap_object(db: AsyncSession, wrap: Wrap) -> None: + try: + await storage.delete(wrap.object_key) + except Exception: + pass + + +async def cleanup_expired_meta(db: AsyncSession) -> int: + """Remove long-expired wrap rows (objects already deleted).""" + now = datetime.now(timezone.utc) + result = await db.execute( + delete(Wrap).where( + Wrap.status.in_([WrapStatus.expired, WrapStatus.consumed]), + Wrap.expires_at < now, + ) + ) + await db.commit() + return result.rowcount or 0 + + +async def mark_consumed(db: AsyncSession, wrap_id: str) -> Wrap | None: + now = datetime.now(timezone.utc) + result = await db.execute( + update(Wrap) + .where(Wrap.id == wrap_id, Wrap.status == WrapStatus.pending, Wrap.expires_at > now) + .values(status=WrapStatus.consumed, consumed_at=now) + .returning(Wrap) + ) + row = result.scalar_one_or_none() + await db.commit() + return row + + +async def purge_all_wraps(db: AsyncSession) -> dict[str, int]: + """Force-delete all wrap DB rows and all objects under wraps/ in MinIO.""" + count_result = await db.execute(select(Wrap.id)) + db_count = len(list(count_result.scalars().all())) + await db.execute(delete(Wrap)) + await db.commit() + objects_deleted = await storage.delete_prefix("wraps/") + return {"wraps_deleted": db_count, "objects_deleted": objects_deleted} diff --git a/app/static/apple-touch-icon.png b/app/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a1fa6392765661b97caa71acfc2e886ea4c797 GIT binary patch literal 2256 zcmV;>2ru`EP) z>2F+D8HdjdLs*6Sv3~(uo0Jv=6sc_zZxLUhc49ltDuF1Zg+GQYP!_4#8aqxb_=dMM zZKMKmY{!lhy8QustSZD}mY_TK#CPl&-}T&c-uFC@^+s{xxpU^6XI}m0&bi~7@tEfx zyz|iY7+^cMzWSY-@f2?c_S}8smCUUt{E*z~Adpxmw;ak{`5hy1Slp^u?#k}$`PDxn za=^U(Hd{^z!&ZzGGyni-Q|g0 zFY7?a3_iG1$}{7Idw)h|D9l^Czg5`BLI>E3$Y6n+1;oyM!@VoW4EDIWC!f^0ZnSsh zHZp^CZtnSJ&H9T%WQMB9<65R?z&>OK2fUe~Q#Udl`Jop(1ObXij(yAXbZ2lv7WYyK zjm+Shv<@a_i2ciVkQuz;##7&@70b}*41(A(a_qlLcLu*maTWv#ALwX#&l24k{Acdz?OmD<4XW5?c<<68-5JC%`}8wy4%4AQ6>WC+F4CPr9<$GE zcIho|tg!hAWYZ=zI)ii`W$3=eCE^B%B<}8Jhi0!cDBzLM=nQHiNB_cI;s%JOfe9zthiwy!VqZFW8OxLNz? zubFSxJ2R8{HX(!17A4*)beybmBX&A!2W}(uPR#b_7x~$DCU^Y*h3}rqC-*dRccW3` z497NR`g<$Azj*gfBX{db);B$CbzBn3_F;|6saoWsa>vJu-0K7{v=0(@1G%%)XuV|^ z5;Ft-N?fMgeN*9y9aM&%9_TR|NGtbD?1|eyHD^LVedN$0anaL((;M@kU2K&?YnQl4 z_nwZ;jYhc}nl8PXKCs{Q5Jbw||A!k!3k~TyPa$z(xu;`uI3QeZv5^Cj?Z`c~F|Sg^ zZb;e-J#}E8>mdXq_f%Wge$z;yQ48=qG-Q)ok|TUrBd9`DUKD~V$k338Bu7+zoGw^GkRwD6Pz6GRD%d^>iAZvU^U#otAV-KCpb8=f zBqGTXIy9()3=PQ$azs>zesS`)>mdZeTI~0$NSpI|l#e8R4NlIxp0i+N9-N$azTR2C zM0MyENNt}%p>s@zhR(l)Q>Yi>B1h|M==vSkbEj73q3d^?uWwM1qXkmiky$dLh1ReD zu31wgb40zl*Hw58U0ZNHkMd={w%~jn%cy$vrly8Eh}5}>=Fau{l~v*+M;xTic}7DK zT=gBe%m=S68co!j=NlE(!3kXpWL4&gMd#~PcB#qG@j8Umi84oX+Bjd{^B!Y_^ zAuaGoK#w(8p|vmcn$kTQX$dAnZ>^EBW!+I@Y}xr7lc6hSbZo_pjqWkpWF8$`F`*J< zU{+atCsV%ly(CtK{Y_5IH)~6vcBSjL`)|jxP1m z8~2T`-Fba%?&rvOSaj$e@JVXUXrzM-oxqXH_s!)aPk1A9G#+wucZeJ*>d55>#t)ev zcrhQw<05jT#D&z`Wridgk=NiiN0B)-jpoOYLMo14`ir@A^edHi=jcAk%;_O=WTYvW zWjLdeAB6Ty>bT5RJbAPc^c5>bICkk>bMfext;rl6AF>ndHHBr=v5W88kvTf92anGP zEFwoi%9Ps1@j?TkJ)qT{k-0cz=n^=7@jY|l*q4fbGAL_N7&3H8b^OA6g=B8t-h;oSIEjOPykIZHB+wXm$)>!{5v7-vw_h>NZ)*^@dZP_~O>#@}o)+3=^ zpK8%uCtu%`x+!z?y$9nm8f)`Kq3h?C?mGGUhZ{0~=*4)9+G_o2jQQd3{hb(_Ou-=e;3-3zD4N^2SOB=+PjER2}#y*Zzgp;GAC^{8XZ^^|B5G zV3V{CrasGo)ZmIN?j>jFIP94Q&&h1)sfji6G*rg9L%T9LTDN@%0C~ydT5dT{P5hfq z4c0h!=##nJEYxjJT}5grpL4_cWR55$KD>h1Py%NQh}@#IJp9Vl{~$Hw=In4eztp(y z+khZE&X(wo6$xJ*r&~iZXGY3zg4Vj~tKoOUR294`jZjh~G@L~;-L e`Do2sZ~hNL=x`C0kOa*D0000 input { + width: 100%; + padding-right: 2.75rem; +} +.field-icon-btn { + position: absolute; + right: 0.35rem; + top: 50%; + transform: translateY(-50%); + width: 2.05rem; + height: 2.05rem; + border: none; + border-radius: 9px; + background: transparent; + color: var(--muted); + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0; + transition: color 0.15s, background 0.15s; +} +.field-icon-btn:hover, +.field-icon-btn:focus-visible { + color: var(--accent-2); + background: rgba(75, 134, 240, 0.1); + outline: none; +} +.field-icon-btn:active { + transform: translateY(-50%) scale(0.96); +} +.ui-tooltip { + position: absolute; + right: 0; + bottom: calc(100% + 0.45rem); + z-index: 5; + min-width: max-content; + max-width: 220px; + padding: 0.4rem 0.55rem; + border-radius: 8px; + border: 1px solid var(--line); + background: var(--panel); + color: var(--text); + font-size: 0.75rem; + font-weight: 500; + line-height: 1.3; + box-shadow: var(--shadow); + opacity: 0; + visibility: hidden; + pointer-events: none; + transform: translateY(4px); + transition: opacity 0.15s, transform 0.15s, visibility 0.15s; + white-space: nowrap; +} +.ui-tooltip::after { + content: ""; + position: absolute; + top: 100%; + right: 0.7rem; + border: 5px solid transparent; + border-top-color: var(--line); +} +.field-icon-btn:hover .ui-tooltip, +.field-icon-btn:focus-visible .ui-tooltip { + opacity: 1; + visibility: visible; + transform: none; +} + +.items { display: grid; gap: 1rem; } +.item-card { + border: 1px solid var(--line); + border-radius: 12px; + padding: 1rem; + background: var(--input); +} +.item-card pre { + margin: 0.6rem 0 0; + overflow: auto; + max-height: 420px; + padding: 0.8rem; + border-radius: 8px; + background: rgba(0,0,0,0.25); +} +html[data-theme="light"] .item-card pre { background: rgba(16, 32, 56, 0.05); } +.item-card img { + max-width: 100%; + border-radius: 8px; + margin-top: 0.6rem; +} + +/* Admin */ +.admin-body { min-height: 100vh; } +.admin-login-shell { + min-height: 100vh; + display: grid; + place-items: center; + padding: 1rem; +} +.admin-card { + width: min(960px, 100%); +} +.admin-card { + display: grid; + gap: 0.7rem; + padding: 1.6rem; + border-radius: 16px; + border: 1px solid var(--line); + background: var(--panel); + box-shadow: var(--shadow); +} +.login-card { + width: min(320px, 100%); + gap: 0.55rem; + padding: 1rem 1.1rem 1.15rem; + border-radius: 14px; +} +.login-head { + display: flex; + align-items: center; + gap: 0.65rem; + margin-bottom: 0.25rem; +} +.login-head .brand-mark { + width: 30px; + height: 30px; +} +.login-head .brand-mark i { + font-size: 0.85rem; +} +.login-head .brand-name { + font-size: 1.05rem; + line-height: 1.1; +} +.login-sub { + font-size: 0.72rem; + color: var(--muted); + font-weight: 600; + letter-spacing: 0.04em; + text-transform: uppercase; +} +.login-card label { + margin-bottom: 0; + font-size: 0.78rem; +} +.login-card input { + margin-top: 0.25rem; + padding: 0.55rem 0.7rem; + font-size: 0.9rem; +} +.login-card .btn { + width: 100%; + margin-top: 0.2rem; + padding: 0.6rem 0.9rem; +} +.login-error { + margin: 0; + font-size: 0.82rem; +} +.admin-top-right { + display: flex; + align-items: center; + gap: 0.85rem; + flex-wrap: wrap; + justify-content: flex-end; +} +.admin-login-toggles { + position: fixed; + top: 1.1rem; + right: 1.5rem; + z-index: 2; +} +.admin-nav { + display: inline-flex; + flex-wrap: wrap; + align-items: center; + gap: 0.3rem; + padding: 0.3rem; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); + backdrop-filter: blur(12px); + box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12); +} +.admin-nav-link { + display: inline-flex; + align-items: center; + gap: 0.45rem; + appearance: none; + border: 1px solid transparent; + background: transparent; + color: var(--muted); + text-decoration: none; + font: inherit; + font-size: 0.86rem; + font-weight: 600; + padding: 0.5rem 0.8rem; + border-radius: 10px; + cursor: pointer; + transition: color 0.15s, background 0.15s, border-color 0.15s; +} +.admin-nav-link i { + font-size: 0.78rem; + opacity: 0.9; +} +.admin-nav-link:hover { + color: var(--text); + background: rgba(110, 168, 255, 0.08); +} +.admin-nav-link.active { + color: var(--text); + background: rgba(110, 168, 255, 0.16); + border-color: rgba(110, 168, 255, 0.28); +} +.admin-nav-danger:hover, +.admin-nav-danger.active { + color: var(--danger); + background: rgba(255, 107, 122, 0.1); + border-color: rgba(255, 107, 122, 0.28); +} +.admin-nav-logout:hover { + color: var(--text); + background: rgba(255, 255, 255, 0.06); +} +html[data-theme="light"] .admin-nav { + box-shadow: 0 8px 24px rgba(20, 40, 70, 0.08); +} +.danger-page { + max-width: 520px; +} +.admin-form, .admin-section { display: grid; gap: 0.8rem; margin-bottom: 1.4rem; } +.admin-section { + padding: 1rem; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); +} +.admin-tabs { + display: grid; + gap: 1rem; +} +.admin-tablist { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + padding: 0.35rem; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); +} +.admin-tab { + appearance: none; + border: 1px solid transparent; + background: transparent; + color: var(--muted); + border-radius: 10px; + padding: 0.55rem 0.85rem; + font: inherit; + font-size: 0.88rem; + font-weight: 600; + cursor: pointer; + transition: color 0.15s, background 0.15s, border-color 0.15s; +} +.admin-tab:hover { + color: var(--text); + background: rgba(110, 168, 255, 0.08); +} +.admin-tab.active { + color: var(--text); + background: rgba(110, 168, 255, 0.14); + border-color: rgba(110, 168, 255, 0.28); +} +.admin-tab-danger.active { + color: var(--danger); + background: rgba(255, 107, 122, 0.1); + border-color: rgba(255, 107, 122, 0.28); +} +.admin-tabpanel { + display: none; + gap: 0.8rem; + padding: 1.1rem; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); +} +.admin-tabpanel.active { + display: grid; +} +.admin-tabpanel h2 { + margin: 0 0 0.2rem; + font-size: 1.15rem; +} +.admin-tab-actions { + display: flex; + justify-content: flex-start; + margin-top: 0.25rem; +} +.admin-form { + display: grid; + gap: 1rem; + margin-bottom: 0; +} + +.radio-block { + display: grid; + grid-template-columns: auto 1fr; + gap: 0.7rem; + align-items: start; + padding: 0.7rem; + border: 1px solid var(--line); + border-radius: 10px; +} +.radio-block small { display: block; color: var(--muted); margin-top: 0.25rem; } +.helper { border: 1px solid var(--line); border-radius: 10px; padding: 0.6rem 0.8rem; } +.helper-body ol { padding-left: 1.2rem; color: var(--muted); } +.hint { color: var(--muted); font-size: 0.9rem; } +.admin-shell { + margin: 0; + padding: 0 0.5rem 2rem; + width: 100%; + max-width: none; + box-sizing: border-box; +} +.admin-shell > h1 { + padding: 0 0.25rem; + margin: 0 0 0.85rem; +} +.audit-page { + display: grid; + gap: 0.85rem; +} +.audit-filters { + display: flex; + flex-wrap: wrap; + gap: 0.65rem; + align-items: end; + padding: 0.85rem; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); +} +.audit-field { + display: grid; + gap: 0.3rem; + min-width: 180px; + margin: 0; +} +.audit-field-grow { + flex: 1 1 220px; + min-width: 200px; +} +.audit-field span { + font-size: 0.78rem; + color: var(--muted); + font-weight: 600; +} +.audit-field select, +.audit-field input { + margin: 0; +} +.audit-filter-btn { + height: 42px; + align-self: end; +} +.audit-meta { + display: flex; + gap: 0.4rem; + align-items: baseline; + color: var(--muted); + font-size: 0.85rem; + padding: 0 0.2rem; +} +.audit-count { + color: var(--accent-2); + font-weight: 700; + font-family: var(--font-mono); +} +.audit-table-wrap { + overflow: auto; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--panel); +} +.audit-table { + width: 100%; + border-collapse: collapse; + font-size: 0.84rem; +} +.audit-table th, +.audit-table td { + border-bottom: 1px solid var(--line); + padding: 0.7rem 0.75rem; + text-align: left; + vertical-align: top; +} +.audit-table th { + position: sticky; + top: 0; + background: color-mix(in srgb, var(--bg2) 88%, transparent); + backdrop-filter: blur(8px); + color: var(--muted); + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.04em; + font-weight: 700; + z-index: 1; +} +.audit-table tbody tr:hover { + background: rgba(110, 168, 255, 0.05); +} +.audit-row-fail { + background: rgba(255, 107, 122, 0.04); +} +.audit-event-pill { + display: inline-block; + font-family: var(--font-mono); + font-size: 0.78rem; + padding: 0.2rem 0.5rem; + border-radius: 8px; + border: 1px solid rgba(110, 168, 255, 0.25); + background: rgba(110, 168, 255, 0.1); + color: var(--text); + white-space: nowrap; +} +.audit-badge { + display: inline-flex; + align-items: center; + gap: 0.35rem; + font-size: 0.78rem; + font-weight: 700; + padding: 0.18rem 0.5rem; + border-radius: 999px; +} +.audit-status { + display: inline-flex; + align-items: center; + gap: 0.35rem; + font-size: 0.78rem; + font-weight: 700; + padding: 0.18rem 0.5rem; + border-radius: 999px; +} +.audit-badge.ok, .audit-status.ok { + color: var(--ok); + background: rgba(93, 222, 138, 0.12); +} +.audit-badge.fail, .audit-status.fail { + color: var(--danger); + background: rgba(255, 107, 122, 0.12); +} +.audit-badge i, .audit-status i { + font-size: 0.7rem; +} +.audit-time { + white-space: nowrap; + font-size: 0.78rem; + color: var(--muted); +} +.audit-wrap { + max-width: 160px; + overflow: hidden; + text-overflow: ellipsis; +} +.audit-details code { + display: block; + max-width: 360px; + overflow: auto; + white-space: pre-wrap; + word-break: break-word; + font-size: 0.72rem; + line-height: 1.35; + color: var(--muted); + background: transparent; +} +.audit-empty { + text-align: center; + color: var(--muted); + padding: 2rem 1rem !important; +} +.audit-table .ua { + max-width: 180px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.pagination { + display: flex; + align-items: center; + justify-content: center; + gap: 0.75rem; + margin-top: 1.1rem; + flex-wrap: wrap; +} +.pagination .btn { + gap: 0.45rem; + padding: 0.55rem 0.9rem; + min-width: 7rem; +} +.pagination .btn[aria-disabled="true"], +.pagination .btn[disabled] { + opacity: 0.4; + pointer-events: none; + transform: none; + box-shadow: none; +} +.pagination-status { + color: var(--muted); + font-size: 0.92rem; + font-variant-numeric: tabular-nums; +} + +/* Confirm modal */ +body.modal-open { + overflow: hidden; +} +.modal-root { + position: fixed; + inset: 0; + z-index: 1000; + display: grid; + place-items: center; + padding: 1.25rem; +} +.modal-root.hidden { + display: none; +} +.modal-backdrop { + position: absolute; + inset: 0; + background: rgba(8, 14, 24, 0.55); + backdrop-filter: blur(4px); +} +html[data-theme="light"] .modal-backdrop { + background: rgba(20, 35, 58, 0.35); +} +.modal-panel { + position: relative; + width: min(420px, 100%); + background: var(--panel); + border: 1px solid var(--line); + border-radius: 16px; + box-shadow: var(--shadow); + padding: 1.35rem 1.4rem 1.25rem; + animation: modal-in 0.18s ease-out; +} +@keyframes modal-in { + from { opacity: 0; transform: translateY(8px) scale(0.98); } + to { opacity: 1; transform: none; } +} +.modal-title { + margin: 0 0 0.55rem; + font-size: 1.15rem; + font-weight: 650; +} +.modal-message { + margin: 0 0 1.25rem; + color: var(--muted); + line-height: 1.45; +} +.modal-actions { + display: flex; + justify-content: flex-end; + gap: 0.6rem; + flex-wrap: wrap; +} +.filters { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-bottom: 1rem; align-items: end; } +.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 12px; } +.inline { display: inline; margin: 0; } +.admin-shell label > span { + display: block; + margin-bottom: 0.35rem; +} +.login-card label > span { + display: block; + margin-bottom: 0.25rem; +} diff --git a/app/static/favicon-32.png b/app/static/favicon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..444e46486098adc48e38e4edb8f6daaf2e695da6 GIT binary patch literal 501 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 + + + + + + + + + + + + diff --git a/app/static/js/admin-audit.js b/app/static/js/admin-audit.js new file mode 100644 index 0000000..10c129c --- /dev/null +++ b/app/static/js/admin-audit.js @@ -0,0 +1,25 @@ +(() => { + const form = document.getElementById("audit-filter-form"); + const typeSelect = document.getElementById("audit-event-type"); + if (form && typeSelect) { + typeSelect.addEventListener("change", () => form.requestSubmit()); + } + + // Human-friendly local timestamps + document.querySelectorAll(".audit-time[data-ts]").forEach((el) => { + const raw = el.getAttribute("data-ts"); + if (!raw) return; + const d = new Date(raw); + if (Number.isNaN(d.getTime())) return; + const locale = window.WrappedI18n?.locale?.() || undefined; + el.textContent = new Intl.DateTimeFormat(locale, { + day: "2-digit", + month: "short", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + }).format(d); + el.title = raw; + }); +})(); diff --git a/app/static/js/admin-tabs.js b/app/static/js/admin-tabs.js new file mode 100644 index 0000000..7bf5eee --- /dev/null +++ b/app/static/js/admin-tabs.js @@ -0,0 +1,32 @@ +(() => { + const root = document.getElementById("admin-tabs"); + if (!root) return; + + const tabs = [...root.querySelectorAll(".admin-tab")]; + const panels = [...root.querySelectorAll(".admin-tabpanel")]; + + function activate(name) { + const id = name || "limits"; + tabs.forEach((tab) => { + const on = tab.dataset.tab === id; + tab.classList.toggle("active", on); + tab.setAttribute("aria-selected", on ? "true" : "false"); + }); + panels.forEach((panel) => { + const on = panel.dataset.panel === id; + panel.classList.toggle("active", on); + panel.hidden = !on; + }); + const url = new URL(location.href); + url.hash = id; + history.replaceState(null, "", url); + } + + tabs.forEach((tab) => { + tab.addEventListener("click", () => activate(tab.dataset.tab)); + }); + + const fromHash = (location.hash || "").replace(/^#/, ""); + const initial = tabs.some((t) => t.dataset.tab === fromHash) ? fromHash : "limits"; + activate(initial); +})(); diff --git a/app/static/js/create.js b/app/static/js/create.js new file mode 100644 index 0000000..1fedd54 --- /dev/null +++ b/app/static/js/create.js @@ -0,0 +1,304 @@ +(() => { + const t = (k) => window.WrappedI18n.t(k); + const files = []; + let settings = null; + let captchaWidgetId = null; + + const els = { + text: document.getElementById("payload-text"), + lang: document.getElementById("text-language"), + ttl: document.getElementById("ttl-seconds"), + password: document.getElementById("password"), + generatePassword: document.getElementById("generate-password"), + dropzone: document.getElementById("dropzone"), + fileInput: document.getElementById("file-input"), + fileList: document.getElementById("file-list"), + wrapBtn: document.getElementById("wrap-btn"), + error: document.getElementById("form-error"), + success: document.getElementById("success-panel"), + composer: document.querySelector(".composer"), + shareLink: document.getElementById("share-link"), + shareToken: document.getElementById("share-token"), + expiresMeta: document.getElementById("expires-meta"), + captchaSlot: document.getElementById("captcha-slot"), + }; + + function showError(msg) { + els.error.textContent = msg; + els.error.classList.remove("hidden"); + } + + function clearError() { + els.error.classList.add("hidden"); + els.error.textContent = ""; + } + + function mimeAllowed(ct) { + const allow = settings.mime_allowlist || []; + const base = (ct || "").split(";")[0].trim().toLowerCase(); + return allow.some((p) => { + const pat = p.toLowerCase(); + if (pat.endsWith("/*")) return base.startsWith(pat.slice(0, -1)); + return base === pat; + }); + } + + function renderFiles() { + els.fileList.innerHTML = ""; + files.forEach((f, idx) => { + const li = document.createElement("li"); + li.innerHTML = `${f.name} (${f.type || "file"} · ${f.size} B)`; + const btn = document.createElement("button"); + btn.type = "button"; + btn.textContent = "×"; + btn.addEventListener("click", () => { + files.splice(idx, 1); + renderFiles(); + }); + li.appendChild(btn); + els.fileList.appendChild(li); + }); + } + + function addFiles(list) { + for (const f of list) { + if (!mimeAllowed(f.type || "application/octet-stream")) { + showError(t("create.mimeDenied") + `: ${f.type || f.name}`); + continue; + } + files.push(f); + } + renderFiles(); + } + + let lastExpiresAt = null; + + function fillTtl() { + if (!settings || !els.ttl) return; + const max = settings.max_ttl_seconds; + const def = settings.default_ttl_seconds; + const selected = els.ttl.value ? Number(els.ttl.value) : def; + const options = [ + { key: "create.ttl.1h", value: 3600 }, + { key: "create.ttl.6h", value: 6 * 3600 }, + { key: "create.ttl.24h", value: 24 * 3600 }, + { key: "create.ttl.3d", value: 3 * 24 * 3600 }, + { key: "create.ttl.7d", value: 7 * 24 * 3600 }, + ].filter((o) => o.value <= max); + if (!options.find((o) => o.value === def) && def <= max) { + options.unshift({ key: "create.ttl.default", value: def, seconds: def }); + } + const pick = options.some((o) => o.value === selected) ? selected : def; + els.ttl.innerHTML = options + .map((o) => { + const label = + o.key === "create.ttl.default" + ? t("create.ttl.default", { seconds: o.seconds }) + : t(o.key); + return ``; + }) + .join(""); + } + + function refreshExpiresMeta() { + if (lastExpiresAt && els.expiresMeta) { + els.expiresMeta.textContent = window.WrappedI18n.formatExpires(lastExpiresAt); + } + } + + function loadCaptcha() { + els.captchaSlot.innerHTML = ""; + captchaWidgetId = null; + const provider = settings.captcha_provider; + if (provider === "turnstile" && settings.turnstile_site_key) { + const div = document.createElement("div"); + div.className = "cf-turnstile"; + div.dataset.sitekey = settings.turnstile_site_key; + els.captchaSlot.appendChild(div); + const s = document.createElement("script"); + s.src = "https://challenges.cloudflare.com/turnstile/v0/api.js"; + s.async = true; + document.body.appendChild(s); + } else if (provider === "hcaptcha" && settings.hcaptcha_site_key) { + const div = document.createElement("div"); + div.className = "h-captcha"; + div.dataset.sitekey = settings.hcaptcha_site_key; + els.captchaSlot.appendChild(div); + const s = document.createElement("script"); + s.src = "https://js.hcaptcha.com/1/api.js"; + s.async = true; + document.body.appendChild(s); + } + } + + function captchaToken() { + if (settings.captcha_provider === "turnstile" && window.turnstile) { + return window.turnstile.getResponse?.() || ""; + } + if (settings.captcha_provider === "hcaptcha" && window.hcaptcha) { + return window.hcaptcha.getResponse?.(captchaWidgetId) || window.hcaptcha.getResponse?.() || ""; + } + return ""; + } + + async function init() { + const resp = await fetch("/api/v1/settings"); + settings = await resp.json(); + fillTtl(); + loadCaptcha(); + } + + els.dropzone.addEventListener("click", () => els.fileInput.click()); + els.fileInput.addEventListener("change", () => addFiles(els.fileInput.files)); + ["dragenter", "dragover"].forEach((ev) => { + els.dropzone.addEventListener(ev, (e) => { + e.preventDefault(); + els.dropzone.classList.add("dragover"); + }); + }); + ["dragleave", "drop"].forEach((ev) => { + els.dropzone.addEventListener(ev, (e) => { + e.preventDefault(); + els.dropzone.classList.remove("dragover"); + }); + }); + els.dropzone.addEventListener("drop", (e) => addFiles(e.dataTransfer.files)); + + document.addEventListener("paste", (e) => { + const items = e.clipboardData?.items; + if (!items) return; + const pasted = []; + for (const item of items) { + if (item.kind === "file") { + const f = item.getAsFile(); + if (f) pasted.push(f); + } + } + if (pasted.length) { + e.preventDefault(); + addFiles(pasted); + } + }); + + async function copyFrom(input, btn) { + await navigator.clipboard.writeText(input.value); + const old = btn.textContent; + btn.textContent = t("common.copied"); + setTimeout(() => (btn.textContent = old), 1200); + } + + document.getElementById("copy-link").addEventListener("click", () => { + copyFrom(els.shareLink, document.getElementById("copy-link")); + }); + document.getElementById("copy-token").addEventListener("click", () => { + copyFrom(els.shareToken, document.getElementById("copy-token")); + }); + document.getElementById("create-another").addEventListener("click", () => { + location.reload(); + }); + + els.wrapBtn.addEventListener("click", async () => { + clearError(); + const text = els.text.value; + if (!text.trim() && files.length === 0) { + showError(t("create.needPayload")); + return; + } + + const items = []; + const contentTypes = []; + if (text.trim()) { + items.push({ + type: "text", + language: els.lang.value, + content: text, + }); + contentTypes.push("text/plain"); + } + for (const f of files) { + const item = await window.WrappedCrypto.fileToItem(f); + items.push(item); + contentTypes.push(item.mime); + } + + for (const ct of contentTypes) { + if (!mimeAllowed(ct)) { + showError(t("create.mimeDenied")); + return; + } + } + + const password = els.password.value || ""; + const pack = { version: 1, items }; + const { ciphertext, keyB64url } = await window.WrappedCrypto.encryptPackage( + pack, + password || null + ); + + if (ciphertext.byteLength > settings.max_upload_bytes) { + showError(t("create.tooLarge")); + return; + } + + els.wrapBtn.disabled = true; + try { + const body = { + ciphertext_b64: window.WrappedCrypto.bytesToBase64(ciphertext), + ttl_seconds: Number(els.ttl.value), + content_types: contentTypes, + item_count: items.length, + has_password: Boolean(password), + password: settings.password_mode === "server_gate" && password ? password : null, + captcha_token: captchaToken() || null, + }; + const resp = await fetch("/api/v1/wraps", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body), + }); + if (!resp.ok) { + const err = await resp.json().catch(() => ({})); + showError(err.detail || t("common.error")); + return; + } + const data = await resp.json(); + const token = window.WrappedCrypto.buildToken(data.wrap_id, keyB64url); + const link = `${location.origin}${data.share_path}#${keyB64url}`; + els.shareLink.value = link; + els.shareToken.value = token; + lastExpiresAt = data.expires_at; + refreshExpiresMeta(); + els.composer.classList.add("hidden"); + els.success.classList.remove("hidden"); + } catch { + showError(t("common.error")); + } finally { + els.wrapBtn.disabled = false; + } + }); + + function generatePassword(length = 20) { + const alphabet = + "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%^&*-_"; + const bytes = new Uint8Array(length); + crypto.getRandomValues(bytes); + return Array.from(bytes, (b) => alphabet[b % alphabet.length]).join(""); + } + + els.generatePassword?.addEventListener("click", () => { + const pwd = generatePassword(); + els.password.type = "text"; + els.password.value = pwd; + els.password.focus(); + els.password.select(); + }); + + if (window.WrappedI18n.onChange) { + window.WrappedI18n.onChange(() => { + fillTtl(); + refreshExpiresMeta(); + }); + } + + init().catch(() => showError(t("common.error"))); +})(); diff --git a/app/static/js/crypto.js b/app/static/js/crypto.js new file mode 100644 index 0000000..8b24576 --- /dev/null +++ b/app/static/js/crypto.js @@ -0,0 +1,199 @@ +(() => { + const te = new TextEncoder(); + const td = new TextDecoder(); + + function b64encode(buf) { + const bytes = buf instanceof ArrayBuffer ? new Uint8Array(buf) : buf; + let s = ""; + for (let i = 0; i < bytes.length; i += 0x8000) { + s += String.fromCharCode(...bytes.subarray(i, i + 0x8000)); + } + return btoa(s); + } + + function b64decode(str) { + const bin = atob(str); + const out = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i); + return out; + } + + function b64urlEncode(buf) { + return b64encode(buf).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, ""); + } + + function b64urlDecode(str) { + const pad = "=".repeat((4 - (str.length % 4)) % 4); + return b64decode(str.replace(/-/g, "+").replace(/_/g, "/") + pad); + } + + async function importAesKey(raw) { + return crypto.subtle.importKey("raw", raw, { name: "AES-GCM" }, false, [ + "encrypt", + "decrypt", + ]); + } + + async function derivePasswordKey(password, salt) { + const base = await crypto.subtle.importKey( + "raw", + te.encode(password), + "PBKDF2", + false, + ["deriveKey"] + ); + return crypto.subtle.deriveKey( + { name: "PBKDF2", salt, iterations: 210000, hash: "SHA-256" }, + base, + { name: "AES-GCM", length: 256 }, + false, + ["encrypt", "decrypt"] + ); + } + + async function encryptPackage(packageObj, password) { + const dek = crypto.getRandomValues(new Uint8Array(32)); + const payload = te.encode(JSON.stringify(packageObj)); + const nonce = crypto.getRandomValues(new Uint8Array(12)); + const key = await importAesKey(dek); + const encrypted = new Uint8Array( + await crypto.subtle.encrypt({ name: "AES-GCM", iv: nonce }, key, payload) + ); + + let body = encrypted; + let bodyNonce = nonce; + let flags = 0; + let salt = new Uint8Array(16); + let outerNonce = new Uint8Array(12); + + if (password) { + flags = 1; + salt = crypto.getRandomValues(new Uint8Array(16)); + outerNonce = crypto.getRandomValues(new Uint8Array(12)); + const pwKey = await derivePasswordKey(password, salt); + const inner = new Uint8Array(nonce.length + encrypted.length); + inner.set(nonce, 0); + inner.set(encrypted, nonce.length); + body = new Uint8Array( + await crypto.subtle.encrypt({ name: "AES-GCM", iv: outerNonce }, pwKey, inner) + ); + bodyNonce = outerNonce; + } + + // header: magic(4) version(1) flags(1) salt(16) nonce(12) + ciphertext + const header = new Uint8Array(4 + 1 + 1 + 16 + 12); + header.set(te.encode("WRPD"), 0); + header[4] = 1; + header[5] = flags; + header.set(salt, 6); + header.set(bodyNonce, 22); + const out = new Uint8Array(header.length + body.length); + out.set(header, 0); + out.set(body, header.length); + + return { + ciphertext: out, + keyB64url: b64urlEncode(dek), + }; + } + + async function decryptPackage(ciphertext, keyB64url, password) { + if (ciphertext.length < 34) throw new Error("truncated"); + const magic = td.decode(ciphertext.subarray(0, 4)); + if (magic !== "WRPD") throw new Error("bad_magic"); + const flags = ciphertext[5]; + const salt = ciphertext.subarray(6, 22); + const nonce = ciphertext.subarray(22, 34); + const body = ciphertext.subarray(34); + const dek = b64urlDecode(keyB64url); + + let plainEncrypted; + let innerNonce; + + if (flags & 1) { + if (!password) throw new Error("password_required"); + const pwKey = await derivePasswordKey(password, salt); + let inner; + try { + inner = new Uint8Array( + await crypto.subtle.decrypt({ name: "AES-GCM", iv: nonce }, pwKey, body) + ); + } catch { + throw new Error("bad_password"); + } + innerNonce = inner.subarray(0, 12); + plainEncrypted = inner.subarray(12); + } else { + innerNonce = nonce; + plainEncrypted = body; + } + + const key = await importAesKey(dek); + let payload; + try { + payload = new Uint8Array( + await crypto.subtle.decrypt({ name: "AES-GCM", iv: innerNonce }, key, plainEncrypted) + ); + } catch { + throw new Error("decrypt_failed"); + } + return JSON.parse(td.decode(payload)); + } + + function buildToken(wrapId, keyB64url) { + return `wrapped_v1.${wrapId}.${keyB64url}`; + } + + function parseToken(input) { + const raw = (input || "").trim(); + if (!raw) return null; + if (raw.startsWith("wrapped_v1.")) { + const parts = raw.split("."); + if (parts.length < 3) return null; + return { wrapId: parts[1], key: parts.slice(2).join(".") }; + } + // bare id — key may come from location.hash + if (/^[A-Za-z0-9]+$/.test(raw) && raw.length >= 16) { + return { wrapId: raw, key: null }; + } + try { + const url = new URL(raw); + const m = url.pathname.match(/\/w\/([A-Za-z0-9]+)/); + if (m) { + return { wrapId: m[1], key: url.hash ? url.hash.slice(1) : null }; + } + } catch { + /* ignore */ + } + return null; + } + + function bytesToBase64(bytes) { + return b64encode(bytes); + } + + function base64ToBytes(b64) { + return b64decode(b64); + } + + async function fileToItem(file) { + const buf = new Uint8Array(await file.arrayBuffer()); + return { + type: "file", + name: file.name || "file", + mime: file.type || "application/octet-stream", + data_b64: b64encode(buf), + }; + } + + window.WrappedCrypto = { + encryptPackage, + decryptPackage, + buildToken, + parseToken, + bytesToBase64, + base64ToBytes, + fileToItem, + b64urlEncode, + }; +})(); diff --git a/app/static/js/i18n.js b/app/static/js/i18n.js new file mode 100644 index 0000000..759f447 --- /dev/null +++ b/app/static/js/i18n.js @@ -0,0 +1,422 @@ +(() => { + const KEY = "wrapped.lang"; + const dict = { + en: { + "footer.tagline": "Zero-knowledge · one-time · encrypted", + "footer.lede": "Wrap text, images or files into a one-time token. Encryption happens in your browser — the server never sees plaintext.", + "footer.cap.text": "Text", + "footer.cap.text.hint": "Secrets, configs, notes", + "footer.cap.media": "Images & files", + "footer.cap.media.hint": "Screenshots, archives, docs", + "footer.cap.browser": "Encrypted in-browser", + "footer.cap.browser.hint": "Only ciphertext reaches the server", + "footer.pillar.zk": "Zero-knowledge", + "footer.pillar.once": "One-time", + "footer.pillar.encrypted": "Encrypted", + "footer.pillar.zk.hint": "Server never sees content", + "footer.pillar.once.hint": "Gone after unwrap", + "footer.pillar.encrypted.hint": "Key lives only in your link", + "footer.copy.author": "Sergey Antropov", + "brand.tagline": "Wrap. Send. Vanish.", + "create.eyebrow": "Secure drop", + "create.title": "Wrap. Send. Vanish.", + "create.lede": "Wrap text, images or files into a one-time token. Encryption happens in your browser — the server never sees plaintext.", + "create.language": "Highlight language", + "create.text": "Text", + "create.textPlaceholder": "Paste secrets, configs, notes…", + "create.drop": "Drop files here, click to browse, or paste a screenshot (⌘V / Ctrl+V)", + "create.ttl": "Time to live", + "create.password": "Password (optional)", + "create.passwordPlaceholder": "Extra unlock secret", + "create.passwordGenerate": "Generate password", + "create.passwordGenerateTip": "Generate a strong password", + "create.submit": "Create wrapped token", + "create.openToken": "Open a token", + "create.successTitle": "Token issued", + "create.successWarn": "One-time unwrap. After someone opens it, ciphertext is destroyed on the server.", + "create.shareLink": "Share link", + "create.token": "Wrapped token", + "create.another": "Create another", + "create.needPayload": "Add text or at least one file.", + "create.tooLarge": "Package exceeds max size.", + "create.mimeDenied": "One or more MIME types are not allowed.", + "create.expires": "Expires {datetime} · {relative}", + "create.ttl.1h": "1 hour", + "create.ttl.6h": "6 hours", + "create.ttl.24h": "24 hours", + "create.ttl.3d": "3 days", + "create.ttl.7d": "7 days", + "create.ttl.default": "Default ({seconds} s)", + "lang.plaintext": "Plain text", + "lang.markdown": "Markdown", + "lang.json": "JSON", + "lang.yaml": "YAML", + "lang.python": "Python", + "lang.javascript": "JavaScript", + "lang.typescript": "TypeScript", + "lang.go": "Go", + "lang.rust": "Rust", + "lang.sql": "SQL", + "lang.bash": "Bash", + "lang.html": "HTML", + "lang.css": "CSS", + "relative.inMinutes": "in {n} min", + "relative.inHours": "in {n} h", + "relative.inDays": "in {n} d", + "relative.soon": "soon", + "unwrap.eyebrow": "Unwrap", + "unwrap.title": "Reveal once", + "unwrap.lede": "Paste a wrapped token or open a share link. Ciphertext is fetched once and deleted from the server.", + "unwrap.token": "Wrapped token or ID", + "unwrap.tokenPlaceholder": "wrapped_v1.… or wrap id", + "unwrap.password": "Password (if set)", + "unwrap.submit": "Unwrap", + "unwrap.destroyed": "Server copy destroyed. Preview lives only in this browser session.", + "unwrap.needKey": "Missing encryption key. Open the full share link (with #key) or paste the full wrapped token.", + "unwrap.badPassword": "Wrong password.", + "unwrap.unavailable": "Unavailable (already used, expired, or invalid).", + "common.copy": "Copy", + "common.copied": "Copied", + "common.download": "Download", + "common.error": "Something went wrong.", + "admin.nav.settings": "Settings", + "admin.nav.audit": "Audit", + "admin.nav.danger": "Danger", + "admin.nav.site": "Site", + "admin.nav.logout": "Logout", + "admin.brand.tagline": "Admin console", + "admin.settings.title": "Settings", + "admin.audit.title": "Audit", + "admin.tab.limits": "Limits", + "admin.tab.rate": "Rate limits", + "admin.tab.mime": "MIME", + "admin.tab.password": "Password", + "admin.tab.captcha": "CAPTCHA", + "admin.login.sub": "Admin", + "admin.login.username": "Username", + "admin.login.password": "Password", + "admin.login.submit": "Sign in", + "admin.login.error.rate": "Too many attempts. Try later.", + "admin.login.error.bad": "Invalid credentials", + "admin.flash.saved": "Settings saved.", + "admin.flash.purgedPrefix": "Purged", + "admin.flash.purgedWraps": "wrap(s) and", + "admin.flash.purgedObjects": "object(s).", + "admin.flash.purgeConfirm": "Type PURGE to confirm forced cleanup.", + "admin.flash.purgeError": "Purge failed. Check logs / MinIO connectivity.", + "admin.limits.title": "Limits", + "admin.limits.maxUpload": "Max upload (MB)", + "admin.limits.defaultTtl": "Default TTL (hours)", + "admin.limits.maxTtl": "Max TTL (hours)", + "admin.limits.auditRetention": "Audit retention (days)", + "admin.rate.title": "Rate limits (per IP / minute)", + "admin.rate.create": "Create", + "admin.rate.unwrap": "Unwrap", + "admin.rate.adminLogin": "Admin login", + "admin.mime.title": "MIME allowlist", + "admin.mime.hint": "One pattern per line. Supports exact types and wildcards like image/*.", + "admin.mime.examples": "Examples / suggested defaults", + "admin.passwordMode.title": "Password mode", + "admin.passwordMode.client_only": "Password is verified only in the browser after ciphertext download. Maximum zero-knowledge: the server never checks the password. Best when you trust link secrecy and want strongest ZK.", + "admin.passwordMode.server_gate": "Server stores an Argon2id hash and releases ciphertext only after a correct password. Slightly weaker ZK metadata but stops offline bruteforce if someone steals the share link without the password.", + "admin.captcha.title": "CAPTCHA", + "admin.captcha.provider": "Provider", + "admin.captcha.turnstileSite": "Turnstile site key", + "admin.captcha.hcaptchaSite": "hCaptcha site key", + "admin.captcha.secrets": "Secrets:", + "admin.captcha.set": "set", + "admin.captcha.missing": "missing", + "admin.captcha.viaEnv": "(via env TURNSTILE_SECRET_KEY / HCAPTCHA_SECRET_KEY)", + "admin.captcha.helperTitle": "How to get CAPTCHA tokens", + "admin.captcha.turnstile.1": "Open Cloudflare Turnstile dashboard", + "admin.captcha.turnstile.2": "Create a site widget for your domain (use localhost for dev)", + "admin.captcha.turnstile.3": "Copy Site Key into the field above", + "admin.captcha.turnstile.4": "Copy Secret Key into env TURNSTILE_SECRET_KEY and restart", + "admin.captcha.turnstile.5": "Set provider to turnstile", + "admin.captcha.hcaptcha.1": "Open hCaptcha dashboard", + "admin.captcha.hcaptcha.2": "New site → copy Sitekey here", + "admin.captcha.hcaptcha.3": "Secret into env HCAPTCHA_SECRET_KEY, restart", + "admin.captcha.hcaptcha.4": "Set provider to hcaptcha", + "admin.settings.save": "Save settings", + "admin.danger.title": "Danger zone", + "admin.danger.hint": "Force-delete all wraps from the database and all ciphertext objects in MinIO (wraps/). Audit log is kept. This cannot be undone.", + "admin.danger.confirmLabel": "Type PURGE to confirm", + "admin.danger.submit": "Clear all wraps & files", + "admin.danger.confirmDialog": "Delete ALL wraps and files? This cannot be undone.", + "admin.danger.confirmTitle": "Confirm purge", + "admin.danger.confirmOk": "Delete everything", + "modal.confirm.title": "Confirm", + "modal.confirm.ok": "Confirm", + "modal.confirm.cancel": "Cancel", + "admin.audit.eventType": "Event type", + "admin.audit.wrapId": "Wrap ID", + "admin.audit.filter": "Filter", + "admin.audit.allEvents": "All events", + "admin.audit.shown": "events shown", + "admin.audit.of": "of", + "admin.audit.events": "events", + "admin.audit.page": "Page", + "admin.audit.prev": "Prev", + "admin.audit.next": "Next", + "admin.audit.col.time": "Time", + "admin.audit.col.event": "Event", + "admin.audit.col.ok": "OK", + "admin.audit.col.wrap": "Wrap", + "admin.audit.col.details": "Details", + "admin.audit.yes": "yes", + "admin.audit.no": "no", + "admin.audit.empty": "No events", + }, + ru: { + "footer.tagline": "Zero-knowledge · одноразово · зашифровано", + "footer.lede": "Упакуй текст, картинки или файлы в одноразовый токен. Шифрование в браузере — сервер не видит plaintext.", + "footer.cap.text": "Текст", + "footer.cap.text.hint": "Секреты, конфиги, заметки", + "footer.cap.media": "Картинки и файлы", + "footer.cap.media.hint": "Скриншоты, архивы, документы", + "footer.cap.browser": "Шифрование в браузере", + "footer.cap.browser.hint": "На сервер уходит только ciphertext", + "footer.pillar.zk": "Zero-knowledge", + "footer.pillar.once": "Одноразово", + "footer.pillar.encrypted": "Зашифровано", + "footer.pillar.zk.hint": "Сервер не видит содержимое", + "footer.pillar.once.hint": "После открытия — удаление", + "footer.pillar.encrypted.hint": "Ключ только в вашей ссылке", + "footer.copy.author": "Сергей Антропов", + "brand.tagline": "Упакуй. Отправь. Исчезни.", + "create.eyebrow": "Безопасная передача", + "create.title": "Упакуй. Отправь. Исчезни.", + "create.lede": "Упакуй текст, картинки или файлы в одноразовый токен. Шифрование в браузере — сервер не видит plaintext.", + "create.language": "Язык подсветки", + "create.text": "Текст", + "create.textPlaceholder": "Вставь секреты, конфиги, заметки…", + "create.drop": "Перетащи файлы, выбери или вставь скриншот из буфера (⌘V / Ctrl+V)", + "create.ttl": "Время жизни", + "create.password": "Пароль (необязательно)", + "create.passwordPlaceholder": "Дополнительный секрет", + "create.passwordGenerate": "Сгенерировать пароль", + "create.passwordGenerateTip": "Сгенерировать надёжный пароль", + "create.submit": "Создать wrapped-токен", + "create.openToken": "Открыть токен", + "create.successTitle": "Токен выдан", + "create.successWarn": "Unwrap один раз. После открытия ciphertext удаляется на сервере.", + "create.shareLink": "Ссылка", + "create.token": "Wrapped-токен", + "create.another": "Создать ещё", + "create.needPayload": "Добавь текст или хотя бы один файл.", + "create.tooLarge": "Пакет превышает лимит размера.", + "create.mimeDenied": "Один или несколько MIME-типов запрещены.", + "create.expires": "Истекает {datetime} · {relative}", + "create.ttl.1h": "1 час", + "create.ttl.6h": "6 часов", + "create.ttl.24h": "24 часа", + "create.ttl.3d": "3 дня", + "create.ttl.7d": "7 дней", + "create.ttl.default": "По умолчанию ({seconds} с)", + "lang.plaintext": "Обычный текст", + "lang.markdown": "Markdown", + "lang.json": "JSON", + "lang.yaml": "YAML", + "lang.python": "Python", + "lang.javascript": "JavaScript", + "lang.typescript": "TypeScript", + "lang.go": "Go", + "lang.rust": "Rust", + "lang.sql": "SQL", + "lang.bash": "Bash", + "lang.html": "HTML", + "lang.css": "CSS", + "relative.inMinutes": "через {n} мин", + "relative.inHours": "через {n} ч", + "relative.inDays": "через {n} дн", + "relative.soon": "скоро", + "unwrap.eyebrow": "Unwrap", + "unwrap.title": "Открыть один раз", + "unwrap.lede": "Вставь wrapped-токен или открой ссылку. Ciphertext скачивается один раз и удаляется на сервере.", + "unwrap.token": "Wrapped-токен или ID", + "unwrap.tokenPlaceholder": "wrapped_v1.… или ID", + "unwrap.password": "Пароль (если задан)", + "unwrap.submit": "Расшифровать", + "unwrap.destroyed": "Копия на сервере уничтожена. Превью только в этой сессии браузера.", + "unwrap.needKey": "Нет ключа шифрования. Открой полную ссылку (с #key) или вставь полный wrapped-токен.", + "unwrap.badPassword": "Неверный пароль.", + "unwrap.unavailable": "Недоступно (уже использовано, истекло или неверно).", + "common.copy": "Копировать", + "common.copied": "Скопировано", + "common.download": "Скачать", + "common.error": "Что-то пошло не так.", + "admin.nav.settings": "Настройки", + "admin.nav.audit": "Аудит", + "admin.nav.danger": "Опасная зона", + "admin.nav.site": "Сайт", + "admin.nav.logout": "Выйти", + "admin.brand.tagline": "Консоль администратора", + "admin.settings.title": "Настройки", + "admin.audit.title": "Аудит", + "admin.tab.limits": "Лимиты", + "admin.tab.rate": "Rate limits", + "admin.tab.mime": "MIME", + "admin.tab.password": "Пароль", + "admin.tab.captcha": "CAPTCHA", + "admin.login.sub": "Админ", + "admin.login.username": "Логин", + "admin.login.password": "Пароль", + "admin.login.submit": "Войти", + "admin.login.error.rate": "Слишком много попыток. Попробуйте позже.", + "admin.login.error.bad": "Неверный логин или пароль", + "admin.flash.saved": "Настройки сохранены.", + "admin.flash.purgedPrefix": "Удалено", + "admin.flash.purgedWraps": "wrap(ов) и", + "admin.flash.purgedObjects": "объект(ов).", + "admin.flash.purgeConfirm": "Введите PURGE для подтверждения очистки.", + "admin.flash.purgeError": "Очистка не удалась. Проверьте логи / MinIO.", + "admin.limits.title": "Лимиты", + "admin.limits.maxUpload": "Макс. размер (МБ)", + "admin.limits.defaultTtl": "TTL по умолчанию (часы)", + "admin.limits.maxTtl": "Макс. TTL (часы)", + "admin.limits.auditRetention": "Хранение аудита (дни)", + "admin.rate.title": "Rate limits (на IP / минуту)", + "admin.rate.create": "Создание", + "admin.rate.unwrap": "Unwrap", + "admin.rate.adminLogin": "Вход в админку", + "admin.mime.title": "MIME allowlist", + "admin.mime.hint": "Один шаблон на строку. Точные типы и wildcards вроде image/*.", + "admin.mime.examples": "Примеры / рекомендуемые значения", + "admin.passwordMode.title": "Режим пароля", + "admin.passwordMode.client_only": "Пароль проверяется только в браузере после скачивания ciphertext. Максимальный zero-knowledge: сервер пароль не проверяет. Лучше, если доверяете секретности ссылки.", + "admin.passwordMode.server_gate": "Сервер хранит Argon2id-хеш и отдаёт ciphertext только после верного пароля. Чуть слабее ZK по метаданным, но защищает от офлайн-брута при утечке ссылки без пароля.", + "admin.captcha.title": "CAPTCHA", + "admin.captcha.provider": "Провайдер", + "admin.captcha.turnstileSite": "Turnstile site key", + "admin.captcha.hcaptchaSite": "hCaptcha site key", + "admin.captcha.secrets": "Секреты:", + "admin.captcha.set": "задан", + "admin.captcha.missing": "нет", + "admin.captcha.viaEnv": "(через env TURNSTILE_SECRET_KEY / HCAPTCHA_SECRET_KEY)", + "admin.captcha.helperTitle": "Как получить токены CAPTCHA", + "admin.captcha.turnstile.1": "Откройте Cloudflare Turnstile dashboard", + "admin.captcha.turnstile.2": "Создайте виджет для домена (для dev — localhost)", + "admin.captcha.turnstile.3": "Скопируйте Site Key в поле выше", + "admin.captcha.turnstile.4": "Secret Key в env TURNSTILE_SECRET_KEY и перезапустите", + "admin.captcha.turnstile.5": "Выберите provider = turnstile", + "admin.captcha.hcaptcha.1": "Откройте hCaptcha dashboard", + "admin.captcha.hcaptcha.2": "Новый сайт → Sitekey сюда", + "admin.captcha.hcaptcha.3": "Secret в env HCAPTCHA_SECRET_KEY, перезапуск", + "admin.captcha.hcaptcha.4": "Выберите provider = hcaptcha", + "admin.settings.save": "Сохранить", + "admin.danger.title": "Опасная зона", + "admin.danger.hint": "Принудительно удаляет все wraps из БД и все ciphertext-объекты в MinIO (wraps/). Аудит сохраняется. Отменить нельзя.", + "admin.danger.confirmLabel": "Введите PURGE для подтверждения", + "admin.danger.submit": "Очистить все wraps и файлы", + "admin.danger.confirmDialog": "Удалить ВСЕ wraps и файлы? Это нельзя отменить.", + "admin.danger.confirmTitle": "Подтверждение очистки", + "admin.danger.confirmOk": "Удалить всё", + "modal.confirm.title": "Подтверждение", + "modal.confirm.ok": "Подтвердить", + "modal.confirm.cancel": "Отмена", + "admin.audit.eventType": "Тип события", + "admin.audit.wrapId": "Wrap ID", + "admin.audit.filter": "Фильтр", + "admin.audit.allEvents": "Все события", + "admin.audit.shown": "событий показано", + "admin.audit.of": "из", + "admin.audit.events": "событий", + "admin.audit.page": "Страница", + "admin.audit.prev": "Назад", + "admin.audit.next": "Далее", + "admin.audit.col.time": "Время", + "admin.audit.col.event": "Событие", + "admin.audit.col.ok": "OK", + "admin.audit.col.wrap": "Wrap", + "admin.audit.col.details": "Детали", + "admin.audit.yes": "да", + "admin.audit.no": "нет", + "admin.audit.empty": "Нет событий", + }, + }; + + const listeners = []; + + function current() { + const stored = localStorage.getItem(KEY); + if (stored === "en" || stored === "ru") return stored; + return "ru"; + } + + function t(key, vars) { + const lang = current(); + let text = (dict[lang] && dict[lang][key]) || dict.en[key] || key; + if (vars) { + Object.entries(vars).forEach(([k, v]) => { + text = text.replaceAll(`{${k}}`, String(v)); + }); + } + return text; + } + + function locale() { + return current() === "ru" ? "ru-RU" : "en-GB"; + } + + function formatExpires(iso) { + const d = new Date(iso); + if (Number.isNaN(d.getTime())) return String(iso); + const datetime = new Intl.DateTimeFormat(locale(), { + day: "numeric", + month: "long", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + }).format(d); + const diffMs = d.getTime() - Date.now(); + let relative = t("relative.soon"); + if (diffMs > 0) { + const mins = Math.round(diffMs / 60000); + if (mins < 60) relative = t("relative.inMinutes", { n: Math.max(1, mins) }); + else if (mins < 60 * 48) relative = t("relative.inHours", { n: Math.round(mins / 60) }); + else relative = t("relative.inDays", { n: Math.round(mins / (60 * 24)) }); + } + return t("create.expires", { datetime, relative }); + } + + function apply() { + const lang = current(); + document.documentElement.lang = lang; + const label = document.getElementById("lang-label"); + if (label) label.textContent = lang.toUpperCase(); + document.querySelectorAll("[data-i18n]").forEach((el) => { + el.textContent = t(el.getAttribute("data-i18n")); + }); + document.querySelectorAll("[data-i18n-placeholder]").forEach((el) => { + el.setAttribute("placeholder", t(el.getAttribute("data-i18n-placeholder"))); + }); + document.querySelectorAll("[data-i18n-tooltip]").forEach((el) => { + el.textContent = t(el.getAttribute("data-i18n-tooltip")); + }); + listeners.forEach((fn) => { + try { + fn(lang); + } catch { + /* ignore */ + } + }); + } + + function onChange(fn) { + listeners.push(fn); + } + + function toggle() { + const next = current() === "en" ? "ru" : "en"; + localStorage.setItem(KEY, next); + apply(); + } + + document.addEventListener("DOMContentLoaded", () => { + apply(); + const btn = document.getElementById("lang-toggle"); + if (btn) btn.addEventListener("click", toggle); + }); + + window.WrappedI18n = { t, apply, current, locale, formatExpires, onChange }; +})(); diff --git a/app/static/js/modal.js b/app/static/js/modal.js new file mode 100644 index 0000000..a7ead9d --- /dev/null +++ b/app/static/js/modal.js @@ -0,0 +1,86 @@ +(() => { + let root = null; + let resolveFn = null; + + function ensure() { + if (root) return root; + root = document.createElement("div"); + root.id = "confirm-modal"; + root.className = "modal-root hidden"; + root.setAttribute("role", "dialog"); + root.setAttribute("aria-modal", "true"); + root.innerHTML = ` + + + `; + document.body.appendChild(root); + + root.addEventListener("click", (e) => { + const t = e.target; + if (!(t instanceof Element)) return; + if (t.closest("[data-modal-cancel]")) finish(false); + if (t.closest("[data-modal-ok]")) finish(true); + }); + + document.addEventListener("keydown", (e) => { + if (!root || root.classList.contains("hidden")) return; + if (e.key === "Escape") { + e.preventDefault(); + finish(false); + } + }); + + return root; + } + + function finish(ok) { + if (!root || root.classList.contains("hidden")) return; + root.classList.add("hidden"); + document.body.classList.remove("modal-open"); + const fn = resolveFn; + resolveFn = null; + if (fn) fn(ok); + } + + function t(key, fallback) { + return window.WrappedI18n?.t(key) || fallback; + } + + /** + * @param {{ title?: string, message: string, confirmLabel?: string, cancelLabel?: string, danger?: boolean }} opts + * @returns {Promise} + */ + function confirm(opts) { + const el = ensure(); + const title = opts.title || t("modal.confirm.title", "Confirm"); + const message = opts.message || ""; + const confirmLabel = opts.confirmLabel || t("modal.confirm.ok", "Confirm"); + const cancelLabel = opts.cancelLabel || t("modal.confirm.cancel", "Cancel"); + const danger = opts.danger !== false; + + el.querySelector("#confirm-modal-title").textContent = title; + el.querySelector("#confirm-modal-message").textContent = message; + const okBtn = el.querySelector("#confirm-modal-ok"); + const cancelBtn = el.querySelector("#confirm-modal-cancel"); + okBtn.textContent = confirmLabel; + cancelBtn.textContent = cancelLabel; + okBtn.className = danger ? "btn danger" : "btn primary"; + + el.classList.remove("hidden"); + document.body.classList.add("modal-open"); + okBtn.focus(); + + return new Promise((resolve) => { + resolveFn = resolve; + }); + } + + window.WrappedModal = { confirm }; +})(); diff --git a/app/static/js/theme.js b/app/static/js/theme.js new file mode 100644 index 0000000..2aabd44 --- /dev/null +++ b/app/static/js/theme.js @@ -0,0 +1,30 @@ +(() => { + const KEY = "wrapped.theme"; + + function preferred() { + return localStorage.getItem(KEY) || "dark"; + } + + function apply(theme) { + document.documentElement.setAttribute("data-theme", theme); + const sun = document.getElementById("theme-icon-sun"); + const moon = document.getElementById("theme-icon-moon"); + if (sun && moon) { + sun.classList.toggle("hidden", theme !== "light"); + moon.classList.toggle("hidden", theme !== "dark"); + } + } + + function toggle() { + const next = preferred() === "dark" ? "light" : "dark"; + localStorage.setItem(KEY, next); + apply(next); + } + + apply(preferred()); + document.addEventListener("DOMContentLoaded", () => { + apply(preferred()); + const btn = document.getElementById("theme-toggle"); + if (btn) btn.addEventListener("click", toggle); + }); +})(); diff --git a/app/static/js/unwrap.js b/app/static/js/unwrap.js new file mode 100644 index 0000000..f86fb32 --- /dev/null +++ b/app/static/js/unwrap.js @@ -0,0 +1,188 @@ +(() => { + const t = (k) => window.WrappedI18n.t(k); + let settings = null; + + const els = { + token: document.getElementById("token-input"), + password: document.getElementById("unwrap-password"), + btn: document.getElementById("unwrap-btn"), + error: document.getElementById("form-error"), + form: document.getElementById("unwrap-form"), + result: document.getElementById("result-panel"), + items: document.getElementById("items"), + captchaSlot: document.getElementById("captcha-slot"), + }; + + function showError(msg) { + els.error.textContent = msg; + els.error.classList.remove("hidden"); + } + + function clearError() { + els.error.classList.add("hidden"); + } + + function loadCaptcha() { + els.captchaSlot.innerHTML = ""; + const provider = settings.captcha_provider; + if (provider === "turnstile" && settings.turnstile_site_key) { + const div = document.createElement("div"); + div.className = "cf-turnstile"; + div.dataset.sitekey = settings.turnstile_site_key; + els.captchaSlot.appendChild(div); + const s = document.createElement("script"); + s.src = "https://challenges.cloudflare.com/turnstile/v0/api.js"; + s.async = true; + document.body.appendChild(s); + } else if (provider === "hcaptcha" && settings.hcaptcha_site_key) { + const div = document.createElement("div"); + div.className = "h-captcha"; + div.dataset.sitekey = settings.hcaptcha_site_key; + els.captchaSlot.appendChild(div); + const s = document.createElement("script"); + s.src = "https://js.hcaptcha.com/1/api.js"; + s.async = true; + document.body.appendChild(s); + } + } + + function captchaToken() { + if (settings.captcha_provider === "turnstile" && window.turnstile) { + return window.turnstile.getResponse?.() || ""; + } + if (settings.captcha_provider === "hcaptcha" && window.hcaptcha) { + return window.hcaptcha.getResponse?.() || ""; + } + return ""; + } + + function resolveKey(parsed) { + if (parsed.key) return parsed.key; + if (location.hash && location.hash.length > 1) return location.hash.slice(1); + return null; + } + + function downloadBlob(name, blob) { + const a = document.createElement("a"); + a.href = URL.createObjectURL(blob); + a.download = name; + a.click(); + setTimeout(() => URL.revokeObjectURL(a.href), 2000); + } + + function renderPackage(pack) { + els.items.innerHTML = ""; + for (const item of pack.items || []) { + const card = document.createElement("div"); + card.className = "item-card"; + if (item.type === "text") { + card.innerHTML = `
text · ${item.language || "plaintext"}
`; + const pre = document.createElement("pre"); + pre.textContent = item.content || ""; + card.appendChild(pre); + const btn = document.createElement("button"); + btn.className = "btn"; + btn.type = "button"; + btn.textContent = t("common.download"); + btn.addEventListener("click", () => { + downloadBlob( + `wrapped-${item.language || "text"}.txt`, + new Blob([item.content || ""], { type: "text/plain" }) + ); + }); + card.appendChild(btn); + } else if (item.type === "file") { + const bytes = window.WrappedCrypto.base64ToBytes(item.data_b64); + const blob = new Blob([bytes], { type: item.mime || "application/octet-stream" }); + card.innerHTML = `
${item.name} · ${item.mime} · ${bytes.length} B
`; + if ((item.mime || "").startsWith("image/")) { + const img = document.createElement("img"); + img.alt = item.name; + img.src = URL.createObjectURL(blob); + card.appendChild(img); + } + const btn = document.createElement("button"); + btn.className = "btn"; + btn.type = "button"; + btn.textContent = t("common.download"); + btn.style.marginTop = "0.6rem"; + btn.addEventListener("click", () => downloadBlob(item.name || "file", blob)); + card.appendChild(btn); + } + els.items.appendChild(card); + } + } + + els.btn.addEventListener("click", async () => { + clearError(); + const parsed = window.WrappedCrypto.parseToken(els.token.value); + if (!parsed) { + showError(t("unwrap.unavailable")); + return; + } + const key = resolveKey(parsed); + if (!key) { + showError(t("unwrap.needKey")); + return; + } + + els.btn.disabled = true; + try { + const resp = await fetch(`/api/v1/wraps/${encodeURIComponent(parsed.wrapId)}/unwrap`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + password: els.password.value || null, + captcha_token: captchaToken() || null, + }), + }); + if (resp.status === 403) { + showError(t("unwrap.badPassword")); + return; + } + if (!resp.ok) { + showError(t("unwrap.unavailable")); + return; + } + const data = await resp.json(); + const ciphertext = window.WrappedCrypto.base64ToBytes(data.ciphertext_b64); + let pack; + try { + pack = await window.WrappedCrypto.decryptPackage( + ciphertext, + key, + els.password.value || null + ); + } catch (err) { + if (err.message === "bad_password" || err.message === "password_required") { + showError(t("unwrap.badPassword")); + return; + } + showError(t("common.error")); + return; + } + renderPackage(pack); + els.form.classList.add("hidden"); + els.result.classList.remove("hidden"); + history.replaceState(null, "", location.pathname); + } catch { + showError(t("common.error")); + } finally { + els.btn.disabled = false; + } + }); + + async function init() { + const resp = await fetch("/api/v1/settings"); + settings = await resp.json(); + loadCaptcha(); + + // Prefill from path + hash + const pathMatch = location.pathname.match(/\/w\/([A-Za-z0-9]+)/); + if (pathMatch && !els.token.value) { + els.token.value = pathMatch[1]; + } + } + + init().catch(() => showError(t("common.error"))); +})(); diff --git a/app/templates/admin_audit.html b/app/templates/admin_audit.html new file mode 100644 index 0000000..6c67a7e --- /dev/null +++ b/app/templates/admin_audit.html @@ -0,0 +1,112 @@ +{% extends "admin_base.html" %} +{% block admin_content %} +
+
+ + + + +
+ +
+ {% if total %} + {{ from_idx }}–{{ to_idx }} + of + {{ total }} + {% else %} + 0 + {% endif %} + events +
+ +
+ + + + + + + + + + + + + + {% for e in events %} + + + + + + + + + + {% else %} + + + + {% endfor %} + +
TimeEventOKWrapIPUADetails
{{ e.created_at }}{{ e.event_type }} + {% if e.success %} + yes + {% else %} + no + {% endif %} + {{ e.wrap_id or "—" }}{{ e.ip or "—" }}{{ e.user_agent or "—" }}{{ e.details }}
No events
+
+ + {% if pages > 1 %} + + {% endif %} +
+ +{% endblock %} diff --git a/app/templates/admin_base.html b/app/templates/admin_base.html new file mode 100644 index 0000000..a80b795 --- /dev/null +++ b/app/templates/admin_base.html @@ -0,0 +1,72 @@ + + + + + + {{ title }} · Wrapped Admin + + + + + + + + + + + +
+ + + + Wrapped + Admin console + + +
+ +
+ + +
+
+
+
+

{{ title }}

+ {% block admin_content %}{% endblock %} +
+ + + + + diff --git a/app/templates/admin_danger.html b/app/templates/admin_danger.html new file mode 100644 index 0000000..28abe5b --- /dev/null +++ b/app/templates/admin_danger.html @@ -0,0 +1,44 @@ +{% extends "admin_base.html" %} +{% block admin_content %} +{% if request.query_params.get('purged') %} +

+ Purged + {{ request.query_params.get('wraps', '0') }} + wrap(s) and + {{ request.query_params.get('objects', '0') }} + object(s). +

+{% endif %} +{% if request.query_params.get('purge') == 'confirm' %} +

Type PURGE to confirm forced cleanup.

+{% endif %} +{% if request.query_params.get('purge') == 'error' %} +

Purge failed. Check logs / MinIO connectivity.

+{% endif %} + +
+

Force-delete all wraps from the database and all ciphertext objects in MinIO (wraps/). Audit log is kept. This cannot be undone.

+
+ + +
+
+ +{% endblock %} diff --git a/app/templates/admin_login.html b/app/templates/admin_login.html new file mode 100644 index 0000000..647db26 --- /dev/null +++ b/app/templates/admin_login.html @@ -0,0 +1,53 @@ + + + + + + {{ title }} · Wrapped + + + + + + + + + + + + +
+ +
+ + + + diff --git a/app/templates/admin_settings.html b/app/templates/admin_settings.html new file mode 100644 index 0000000..cab4798 --- /dev/null +++ b/app/templates/admin_settings.html @@ -0,0 +1,140 @@ +{% extends "admin_base.html" %} +{% block admin_content %} +{% if request.query_params.get('saved') %} +

Settings saved.

+{% endif %} + +
+
+ + + + + +
+ +
+
+

Limits

+
+ + + + +
+
+ + + + + + + + + +
+ +
+
+
+ + +{% endblock %} diff --git a/app/templates/base.html b/app/templates/base.html new file mode 100644 index 0000000..ccb2cba --- /dev/null +++ b/app/templates/base.html @@ -0,0 +1,75 @@ + + + + + + {% block title %}{{ title or "Wrapped" }}{% endblock %} + + + + + + + + + {% block head %}{% endblock %} + + + +
+ + + + Wrapped + Упакуй. Отправь. Исчезни. + + +
+ + +
+
+
+ {% block content %}{% endblock %} +
+
+ + +
+ + + {% block scripts %}{% endblock %} + + diff --git a/app/templates/create.html b/app/templates/create.html new file mode 100644 index 0000000..064b676 --- /dev/null +++ b/app/templates/create.html @@ -0,0 +1,82 @@ +{% extends "base.html" %} +{% block content %} +
+
+
+ + +
+ + + + +
+

Drop files here, click to browse, or paste a screenshot (⌘V / Ctrl+V)

+ +
+
    + +
    +
    + + +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    + +
    +
    + + +
    +{% endblock %} +{% block scripts %} + + +{% endblock %} diff --git a/app/templates/unwrap.html b/app/templates/unwrap.html new file mode 100644 index 0000000..bad8118 --- /dev/null +++ b/app/templates/unwrap.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} +{% block content %} +
    +
    +

    Unwrap

    +

    Reveal once

    +

    Paste a wrapped token or open a share link. Ciphertext is fetched once and deleted from the server.

    +
    + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + +
    +{% endblock %} +{% block scripts %} + + +{% endblock %} diff --git a/deploy/nginx.conf b/deploy/nginx.conf new file mode 100644 index 0000000..3ec706d --- /dev/null +++ b/deploy/nginx.conf @@ -0,0 +1,18 @@ +server { + listen 80; + server_name _; + + client_max_body_size 64m; + + location / { + proxy_pass http://app:8000; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + # Overwrite client-supplied XFF so spoofing via the edge is not possible. + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host; + proxy_read_timeout 120s; + } +} diff --git a/deploy/nginx.dev.conf b/deploy/nginx.dev.conf new file mode 100644 index 0000000..b75efae --- /dev/null +++ b/deploy/nginx.dev.conf @@ -0,0 +1,25 @@ +server { + listen 80; + server_name _; + + # When another proxy sits in front (CI, tunnel), honour its client IP. + set_real_ip_from 10.0.0.0/8; + set_real_ip_from 172.16.0.0/12; + set_real_ip_from 192.168.0.0/16; + set_real_ip_from 127.0.0.0/8; + set_real_ip_from fc00::/7; + real_ip_header X-Forwarded-For; + real_ip_recursive on; + + client_max_body_size 64m; + + location / { + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host; + proxy_pass http://app:8000; + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7c4554c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,101 @@ +services: + proxy: + image: nginx:1.27-alpine + container_name: wrapped-proxy + restart: unless-stopped + ports: + - "${APP_PORT:-8000}:80" + volumes: + - ./deploy/nginx.dev.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - app + + app: + build: + context: . + dockerfile: Dockerfile + container_name: wrapped-app + restart: unless-stopped + expose: + - "8000" + env_file: + - .env + environment: + DATABASE_URL: postgresql+asyncpg://wrapped:wrapped@postgres:5432/wrapped + S3_ENDPOINT_URL: http://minio:9000 + S3_ACCESS_KEY: wrappedminio + S3_SECRET_KEY: wrappedminio123 + S3_BUCKET: wrapped + S3_USE_SSL: "false" + S3_CREATE_BUCKET: "true" + APP_BASE_URL: ${APP_BASE_URL:-http://localhost:8000} + # Trust docker / compose networks so nginx X-Real-IP / X-Forwarded-For are used. + TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16} + depends_on: + postgres: + condition: service_healthy + minio: + condition: service_started + minio-init: + condition: service_completed_successfully + volumes: + - ./app:/app/app:ro + command: > + sh -c "alembic upgrade head && + uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload + --proxy-headers --forwarded-allow-ips='*'" + + postgres: + image: postgres:16-alpine + container_name: wrapped-postgres + restart: unless-stopped + environment: + POSTGRES_USER: wrapped + POSTGRES_PASSWORD: wrapped + POSTGRES_DB: wrapped + # Not published by default (host :5432 often busy). Set POSTGRES_PORT to expose. + ports: + - "${POSTGRES_PORT:-127.0.0.1:5433}:5432" + volumes: + - wrapped_pg_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U wrapped -d wrapped"] + interval: 5s + timeout: 5s + retries: 10 + + minio: + image: minio/minio:latest + container_name: wrapped-minio + restart: unless-stopped + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: wrappedminio + MINIO_ROOT_PASSWORD: wrappedminio123 + ports: + - "${MINIO_API_PORT:-9000}:9000" + - "${MINIO_CONSOLE_PORT:-9001}:9001" + volumes: + - wrapped_minio_data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 10s + timeout: 5s + retries: 5 + + minio-init: + image: minio/mc:latest + container_name: wrapped-minio-init + depends_on: + minio: + condition: service_healthy + entrypoint: > + /bin/sh -c " + mc alias set local http://minio:9000 wrappedminio wrappedminio123 && + mc mb --ignore-existing local/wrapped && + exit 0 + " + +volumes: + wrapped_pg_data: + wrapped_minio_data: diff --git a/docs/screenshots/create-dark.png b/docs/screenshots/create-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..128babe759e163e7ecf12a198e5b28d3939868f0 GIT binary patch literal 33346 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/create-filled-dark.png b/docs/screenshots/create-filled-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fea9cce2728b9731e1ded8d8a8663319644b4ea6 GIT binary patch literal 36788 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/create-filled-light.png b/docs/screenshots/create-filled-light.png new file mode 100644 index 0000000000000000000000000000000000000000..4889254218f81ddec3460a0c87c8f719d3e84484 GIT binary patch literal 36634 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

    *7MpCPCu7h&B@-;pRm*(AmiB6MH_`<&V5EF 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/token-issued-light.png b/docs/screenshots/token-issued-light.png new file mode 100644 index 0000000000000000000000000000000000000000..9fddf369487c22e4fd5fac81e773b163fad2b433 GIT binary patch literal 43770 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

    =44r<{#*m-6w*Jw3 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

    vX%tY+%NM>!IL|Yj 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δKtJ#EPI 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 + alembic upgrade head && + uvicorn app.main:app + --host 0.0.0.0 + --port 8000 + --proxy-headers + --forwarded-allow-ips={{ .Values.app.trustedProxies | default "*" | quote }} + envFrom: + - secretRef: + name: {{ include "wrapped.fullname" . }}-secret + - configMapRef: + name: {{ include "wrapped.fullname" . }}-config + readinessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /health + port: http + initialDelaySeconds: 15 + periodSeconds: 20 + {{- with .Values.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm/wrapped/templates/ingress.yaml b/helm/wrapped/templates/ingress.yaml new file mode 100644 index 0000000..d523d86 --- /dev/null +++ b/helm/wrapped/templates/ingress.yaml @@ -0,0 +1,35 @@ +{{- if .Values.ingress.enabled -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "wrapped.fullname" . }} + labels: + {{- include "wrapped.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.className }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- toYaml .Values.ingress.tls | nindent 4 }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + pathType: {{ .pathType }} + backend: + service: + name: {{ include "wrapped.fullname" $ }} + port: + number: {{ $.Values.service.port }} + {{- end }} + {{- end }} +{{- end }} diff --git a/helm/wrapped/templates/secret.yaml b/helm/wrapped/templates/secret.yaml new file mode 100644 index 0000000..e43b4bb --- /dev/null +++ b/helm/wrapped/templates/secret.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "wrapped.fullname" . }}-secret + labels: + {{- include "wrapped.labels" . | nindent 4 }} +type: Opaque +stringData: + APP_SECRET_KEY: {{ .Values.app.secretKey | quote }} + ADMIN_USERNAME: {{ .Values.app.adminUsername | quote }} + ADMIN_PASSWORD: {{ .Values.app.adminPassword | quote }} + DATABASE_URL: {{ .Values.external.databaseUrl | quote }} + S3_ACCESS_KEY: {{ .Values.external.s3.accessKey | quote }} + S3_SECRET_KEY: {{ .Values.external.s3.secretKey | quote }} + TURNSTILE_SECRET_KEY: {{ .Values.app.turnstileSecretKey | quote }} + HCAPTCHA_SECRET_KEY: {{ .Values.app.hcaptchaSecretKey | quote }} diff --git a/helm/wrapped/templates/service.yaml b/helm/wrapped/templates/service.yaml new file mode 100644 index 0000000..ce91be3 --- /dev/null +++ b/helm/wrapped/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "wrapped.fullname" . }} + labels: + {{- include "wrapped.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + app.kubernetes.io/name: {{ include "wrapped.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/helm/wrapped/values.yaml b/helm/wrapped/values.yaml new file mode 100644 index 0000000..cf105b2 --- /dev/null +++ b/helm/wrapped/values.yaml @@ -0,0 +1,57 @@ +replicaCount: 1 + +image: + repository: inecs/wrapped + tag: "0.1.0" + pullPolicy: IfNotPresent + +service: + type: ClusterIP + port: 8000 + +ingress: + enabled: false + className: "" + annotations: + # Pass real client IP to the app (nginx ingress). + nginx.ingress.kubernetes.io/use-forwarded-headers: "true" + nginx.ingress.kubernetes.io/compute-full-forwarded-for: "true" + nginx.ingress.kubernetes.io/enable-real-ip: "true" + hosts: + - host: wrapped.local + paths: + - path: / + pathType: Prefix + tls: [] + +resources: {} + +# Use existing Postgres / MinIO (recommended for production release) +external: + databaseUrl: "postgresql+asyncpg://wrapped:wrapped@postgres:5432/wrapped" + s3: + endpointUrl: "http://minio:9000" + accessKey: "wrappedminio" + secretKey: "wrappedminio123" + bucket: "wrapped" + region: "us-east-1" + useSsl: false + createBucket: false + +app: + env: production + baseUrl: "https://wrapped.local" + secretKey: "change-me-in-prod" + adminUsername: admin + adminPassword: "change-me" + logLevel: INFO + # Swagger / ReDoc / openapi.json — disabled for k8s by default + docsEnabled: false + # Trust Ingress / any peer for X-Forwarded-For (ClusterIP is not public). + trustedProxies: "*" + turnstileSecretKey: "" + hcaptchaSecretKey: "" +podAnnotations: {} +nodeSelector: {} +tolerations: [] +affinity: {} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..31c9664 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,37 @@ +[project] +name = "wrapped" +version = "0.1.0" +description = "Zero-knowledge one-time encrypted drop service" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.115.0", + "uvicorn[standard]>=0.32.0", + "sqlalchemy[asyncio]>=2.0.36", + "asyncpg>=0.30.0", + "alembic>=1.14.0", + "pydantic-settings>=2.6.0", + "python-multipart>=0.0.17", + "httpx>=0.28.0", + "aiobotocore>=2.15.0", + "argon2-cffi>=23.1.0", + "jinja2>=3.1.4", + "itsdangerous>=2.2.0", + "orjson>=3.10.0", +] + +[project.optional-dependencies] +dev = [ + "ruff>=0.8.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["app"] + +[tool.ruff] +line-length = 100 +target-version = "py312"