aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..723b1c9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,58 @@
+# Federated Wiki - Security Plug-in: OIDC (OpenID Connect)
+
+This security plug-in allows you to sign-in with OpenID Connect providers
+such as PocketID, Keycloak or Authelia.
+
+This plugin uses the `preferred_username` to check ownership, but displays
+the `name` to display who owns the wiki.
+
+## Configuration Options
+
+To use this plugin, you must set the `security_type` to `"oidc"`.
+
+* `oidc_clientID`: The Client ID for your application. **Required**.
+* `oidc_clientSecret`: The Client Secret for your application. **Required**.
+* `oidc_issuerBaseURL`: The Base URL for the issuer. This is used to discover
+ all other URLs. **Required**.
+* `secret`: A long random string to derive keys from. **Required**.
+* `oidc_issuerName`: The issuer name shown on the login button. **Optional,
+ defaults to `"SSO"`**.
+* `oidc_claimOnFirstLogin`: Whether the first login on an un unclaimed wiki
+ results in a claim. **Optional, defaults to `false`**.
+* `oidc_idpLogout`: Whether to log out from the identity provider when logging
+ out from the wiki. Providers like Pocket ID don't allow you to be redirected
+ back if this is true. **Optional, defaults to `false`**
+
+## Development workflow
+
+This project has a `Makefile` that encapsulates some of the common development
+tasks.
+
+To help with development, you can to run the plugin in a local instance of
+wiki. You need to set the path of that using the `WIKIDIR` environment variable.
+
+The `Makefile` assumes the wiki is in `../../vendor/wiki`.
+
+```
+# If your wiki directory is elsehwere.
+WIKIDIR=$HOME/workspace/wiki make link
+```
+
+The source needs to be built before it can be used. `make build` builds it.
+
+### Linking the project.
+
+`make link` will create a link from this project to the local fedwiki instance,
+so it can load the latest version of your code.
+
+### Running the local Wiki.
+
+`make` will run the wiki.
+`make watch` will rebuild the client on any change.
+
+### Code quality.
+
+- Run tests with `make test`
+- Format the code with `make format`
+- Lint the code with `make lint`
+- Generate typescript types with `make types`