Plugin contract for the Schuly backend - distributed as a NuGet package
The stable contract that plugins implement and that SchulyBackend consumes. Versioned and published as a NuGet package so plugin authors don't need to vendor backend source.
ISchulyPlugin- entry point: register services, endpoints, migrationsIPluginLogin- account-connect contract, and the source of a plugin's school-system catalog entryIPluginBackgroundTask- recurring background workIPluginEventHandler<TCommand>- react to application commandsIPluginUserContext- read user claims / roles from inside a plugin
<PackageReferenceInclude="Schuly.Plugin.Abstractions"Version="*" />Implement ISchulyPlugin and the backend's plugin host discovers it automatically.
Full documentation lives at docs.schuly.dev/SchulyPluginAbstractions.
| Guide | What it covers |
|---|---|
| The contract | Every interface, member by member, with worked examples. |
| Development setup | Build and test the package locally. |
| Publishing | How a release reaches NuGet.org. |
| Versioning | Semver policy and what counts as breaking. |
| Contributing | Workflow, branch and PR conventions. |
Writing a plugin against this contract? See Adding a plugin.
| Repo | Purpose |
|---|---|
| Schuly | Flutter mobile app |
| SchulyBackend | ASP.NET Core API backend |
| SchulyKeycloak | Keycloak image + the schuly realm |
| SchulyPluginAbstractions | Plugin contract (NuGet) (this repo) |
| SchulyPlugins | Official plugins monorepo |
| SchulyWebsite | Landing site (schuly.dev) |
| SchulyDocs | Documentation site (docs.schuly.dev) |