Files
remove-youtube-suggestions/server
dependabot[bot] c473314ca5 Bump fast-xml-parser and @aws-sdk/xml-builder in /server (#201)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [@aws-sdk/xml-builder](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/packages-internal/xml-builder). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 5.3.4 to 5.3.6
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.4...v5.3.6)

Updates `@aws-sdk/xml-builder` from 3.972.4 to 3.972.5
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/packages-internal/xml-builder/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/HEAD/packages-internal/xml-builder)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.3.6
  dependency-type: indirect
- dependency-name: "@aws-sdk/xml-builder"
  dependency-version: 3.972.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 18:22:39 -05:00
..

RYS Premium Server

Backend server for the premium subscription system.

Quick Start

# Install dependencies
npm install

# Copy env and fill in values
cp .env.example .env

# Run tests
npm test

# Start development server
npm run dev

# Start production server
npm start

API Endpoints

Endpoint Method Auth Description
/health GET No Health check
/auth/send-magic-link POST No Send magic link email
/auth/verify GET No Magic link target (HTML)
/auth/poll GET No Poll for verification status
/license/check GET Yes Check premium status
/checkout/create POST Yes Create Stripe checkout session
/checkout/success GET No Success page (HTML)
/checkout/cancel GET No Cancel page (HTML)
/billing/portal POST Yes Create billing portal session
/billing/return GET No Return page (HTML)
/webhook/stripe POST No* Stripe webhook

*Authenticated via Stripe signature

File Structure

server/
├── src/
│   ├── index.js        # Entry point
│   ├── config.js       # Configuration
│   ├── routes/         # Express routes
│   ├── services/       # Stripe, JWT, email
│   └── storage/        # File-based storage
├── data/
│   ├── grandfathered.json   # Donor emails (gitignored)
│   ├── auth-requests/       # Pending auth (auto-created)
│   └── rate-limits/         # Rate limit counters (auto-created)
├── tests/
└── package.json

Grandfathered Users

Past donors get lifetime premium. Store emails in data/grandfathered.json:

["donor1@example.com", "donor2@example.com"]

This file is gitignored. See data.example/ for format.

Full Documentation

See DEPLOYMENT.md for complete setup, deployment, and testing instructions.