blob: 723b1c91a8b20ab1f69c7caa2d8f08b30c127853 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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`
|