From 1e84fa6e411eeef85e252a18db62783944dbae08 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Mon, 30 Sep 2024 13:49:04 +0200 Subject: [PATCH] docs: :memo: Update changelog and README --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ README.md | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6f3f4f4..77552482 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,38 @@ Versia Server `0.7.0` is backwards compatible with `0.6.0`. However, some new fe - Add JSON schema for configuration file. - Rewrite federation stack - Updated federation to Versia 0.4 +- Implement OAuth2 token revocation +- Add new **Plugin API** + +## Plugin System + +A new plugin system for extending Versia Server has been added in this release! + +> [!NOTE] +> +> This is an internal feature and is not documented. Support for third-party plugins will be given on a "if we have time" basis, until the API is fully stabilized and documented + +Plugins using this framework support: + +- [x] Plugin hotswapping +- [x] Manifest files (JSON, JSON5, JSONC supported) with metadata (JSON schema provided) +- [x] Installation by dropping a folder into the plugins/ directory +- [x] Support for plugins having their own NPM dependencies +- [x] Support for storing plugins' configuration in the main config.toml +- [x] Schema-based strict config validation (plugins can specify their own schemas) +- [x] Full type-safety +- [x] Custom hooks +- [x] FFI compatibility (with `bun:ffi` or Node's FFI) +- [x] Custom API route registration or overriding or middlewaring +- [x] Automatic OpenAPI schema generation for all installed plugins +- [x] End-to-end and unit testing supported +- [x] Automatic user input validation for API routes with schemas (specify a schema for the route and the server will take care of validating everything) +- [x] Access to internal database abstractions +- [x] Support for sending raw SQL to database (type-safe!) + +The new `@versia/kit` NPM/JSR package is available for plugin developers. + +As a demonstration of the power of this system and an effort to modularize the codebase further, OpenID functionality has been moved to a plugin. This plugin is required for login. ## Bug Fixes diff --git a/README.md b/README.md index 6a60baa4..8fe5774d 100644 --- a/README.md +++ b/README.md @@ -187,7 +187,7 @@ Working endpoints are: - [ ] `/api/v2/suggestions` - [x] `/oauth/authorize` - [x] `/oauth/token` -- [ ] `/oauth/revoke` +- [x] `/oauth/revoke` - Admin API ### Main work to do for API