Skip to content

Latest commit

 

History

History
150 lines (122 loc) · 7.53 KB

File metadata and controls

150 lines (122 loc) · 7.53 KB
sidebar_position 1
title Features Overview
description Complete list of JSS features

Features Overview

JSS is a lightweight, fast Solid server for Node.js. It implements the Solid Protocol with additional features for development, federation, and personal pod hosting.

Current version: 0.0.86

Quick Start

npx servejss

A drop-in alternative to npx serve with REST write support, live reload, and Solid protocol underneath.


Core Solid Protocol

Feature Description Docs
LDP CRUD GET, PUT, POST, DELETE, HEAD on resources and containers Details
Web Access Control WAC with .acl files, agent/group/public permissions Details
Content Negotiation JSON-LD, Turtle, N3, N-Triples (--conneg)
Patching N3 Patch + SPARQL Update for partial edits Details
Conditional Requests If-Match / If-None-Match with ETag support (304, 412)
WebSocket Notifications Real-time updates via solid-0.1 protocol Details
Multi-user Pods Path-based or subdomain-based pod isolation Details
Pod Discovery .well-known/openid-configuration, TypeIndex generation
HTTP Range Requests Partial content delivery for streaming media
Storage Quotas Per-pod quota enforcement with CLI management Details
CORS Full cross-origin support with proper header exposure

Authentication & Identity

Feature Description Docs
Solid-OIDC Token validation with DPoP proof-of-possession Details
Built-in Identity Provider Full OAuth2/OIDC login flows (--idp)
Passkey / WebAuthn Passwordless authentication using FIDO2
WebID-TLS Client certificate authentication with X.509 certs
Nostr NIP-98 Schnorr signature-based HTTP auth, did:nostr identity Details
Invite-only Registration Restrict signups with invite codes (--invite-only) Details
Token Management DPoP validation, jti replay prevention

Developer Tools

Feature Description Docs
Live Reload Edit a file, browser refreshes automatically (--live-reload) Details
Public Mode Skip authentication for local development (--public)
Read-only Mode Disable PUT/DELETE/PATCH for safe viewing (--read-only)
Single-user Mode Personal pod server, no registration needed (--single-user)
File Watcher Detects filesystem changes and triggers WebSocket notifications
Mashlib / SolidOS Data browser UI, local or CDN mode (--mashlib, --mashlib-cdn) Details
SolidOS UI Modern Nextcloud-style interface (--solidos-ui)
Config System CLI args > env vars > config file > defaults
Print Config Debug configuration with --print-config

Federation & Social

Feature Description Docs
ActivityPub Full federation support with inbox, outbox, followers (--activitypub) Details
Webfinger Standard actor discovery for federation
Nostr Relay NIP-01 relay with configurable event limits (--nostr) Details
Nostr Event Types Replaceable, ephemeral, parameterized replaceable kinds
Nostr-AP Linking Link Nostr identity to ActivityPub actor (--ap-nostr-pubkey) Details

Security

Feature Description Docs
Inbox & Spam Mitigation Layered defenses on LDP inboxes Details
Rate Limiting Global (100/min), writes (60/min), pod creation (1/day)
SSL/TLS HTTPS with custom certificates (--ssl-key, --ssl-cert)
Dotfile Protection Blocks .git, .env, .htpasswd access
SSRF Protection URL validation for external fetches
Path Traversal Protection Sanitization in all handlers
DPoP Replay Prevention jti cache prevents token reuse
Password Hashing bcryptjs with minimum length validation

Payments & Tokens

Feature Description Docs
HTTP 402 Payments Monetize /pay/* resources with per-request sat payments (--pay) Details
Sat Deposits Credit balance by posting a Bitcoin UTXO (TXO URI) Details
MRC20 Token Deposits Deposit tokens with state proof and anchor verification Details
Primary Market Buy/withdraw pod tokens with sat balance (--pay-token) Details
Secondary Market Peer-to-peer sell orders and swaps via pod escrow Details
Token CLI Mint, transfer, and inspect MRC20 tokens (jss token) Details
Multi-Chain Deposits Accept sats from multiple Bitcoin networks (--pay-chains) Details
AMM Pool Constant-product market maker for cross-chain trading Details
Web Ledger Multi-currency balance tracking per did:nostr (webledgers.org spec)

Integrations

Feature Description Docs
Git HTTP Backend Clone and push repos via HTTPS (--git) Details
servejss npx serve alternative with write support and live reload
Cross-platform Runs on Android/Termux via sql.js and bcryptjs fallbacks

HTTP Methods

Method Support
GET Full
HEAD Full
PUT Full
POST Full
DELETE Full
PATCH N3 Patch + SPARQL Update
OPTIONS Full with CORS

CLI Commands

jss start [options]      # Start the server
jss init                 # Interactive configuration setup
jss invite create        # Create invite code
jss invite list          # List invite codes
jss invite revoke <code> # Revoke invite code
jss quota set <user> <size>   # Set storage quota
jss quota show <user>         # Show quota info
jss quota reconcile <user>    # Recalculate from disk

What's New Since v0.0.42

Version Feature
v0.0.59 Nostr relay (NIP-01)
v0.0.61 ActivityPub federation
v0.0.75 WebID-TLS authentication
v0.0.76 SolidOS modern UI
v0.0.77 Single-user mode, Passkey/WebAuthn auth
v0.0.80 Cross-platform support (Android/Termux)
v0.0.82 Public mode, Read-only mode
v0.0.84 Live reload with filesystem watcher
v0.0.85 File watcher for external changes
v0.0.86 WebSocket fix for public mode, port fix for file watcher