Before this fix, a too early `return` statement terminated the
`updateLdapUsers()` function, whenever one not already existing user was
created. Therefore, in each LDAP sync a maximum of one new user could be
created (i.e., it took x LDAP sync cycles until x new LDAP users are
registered in wg-portal). Depending on the LDAP `sync_interval` this can
take a long time and produces unecessary long waiting times until users
are available in wg-portal.
Removing the early return statement, and move the remainder of the
function into an `else` statement, so that all new users can be
added in a single LDAP sync.
Also adding a debug statement to better trace the behavior.
Signed-off-by: klmmr <35450576+klmmr@users.noreply.github.com>
Public REST API implementation to handle peers, interfaces and users. It also includes some simple provisioning endpoints.
The Swagger API documentation is available under /api/v1/doc.html
* Added TLS support for web
- Added optional configurations `cert_file` and `key_file` to run web server with https
Signed-off-by: Dmytro Bondar <git@bonddim.com>
* Helm chart update
- Refactored Ingress to use one host only (`config.web.external_url` is required)
- Added Certificate resource template (secret is mounted to container into `/app/certs/`)
- Added support for service with mixed protocols (exposes UI and Wireguard ports on same IP)
- Added helm-docs target to makefile
- Changed pod labels to use selectorLabels
- Removed default probes (app runs without healthy web)
- Removed sections from README
Signed-off-by: Dmytro Bondar <git@bonddim.com>
* Fix chart workflow path filter
* Fix chart lint issue
* Skip clean-up tested chart
* Try k3d cluster
---------
Signed-off-by: Dmytro Bondar <git@bonddim.com>
* fix: autosave wireguard conf files
- Fix subscription to Interface and Peer updates topics
- Remove admin permissions validation
- Update file on peer deletion
- Change save condition to configured storage path only, as initialized interface is not nil
* Added comment to peer config for prometheus exporter
Initial alpha codebase for version 2 of WireGuard Portal.
This version is considered unstable and incomplete (for example, no public REST API)!
Use with care!
Fixes/Implements the following issues:
- OAuth support #154, #1
- New Web UI with internationalisation support #98, #107, #89, #62
- Postgres Support #49
- Improved Email handling #47, #119
- DNS Search Domain support #46
- Bugfixes #94, #48
---------
Co-authored-by: Fabian Wechselberger <wechselbergerf@hotmail.com>
* Give the way to connect against LDAP server with certificate and key
* fix(ldap) Update cert variable name
In order to be more explicit
Co-authored-by: Alexis Aurin <alexis@so6.pw>
* api - add OperationID
helps when using pyswagger and is visible via
http://localhost:8123/swagger/index.html?displayOperationId=true
gin-swagger can not set displayOperationId yet
* api - match paramters to their property equivalents
pascalcase & sometimes replacing the name (e.g. device -> DeviceName)
* api - use ShouldBindJSON instead of BindJSON
BindJSON sets the content-type text/plain
* api - we renamed, we regenerated
* device - allow - in DeviceName wg-example0.conf etc
* api - more pascalcase & argument renames
* api - marshal DeletedAt as string
gorm.DeletedAt is of type sql.NullTime
NullTime declares Time & Valid as properties
DeletedAt marshals as time.Time
swaggertype allows only basic types
-> string
* Peer - export UID/DeviceType in json
UID/DeviceType is required, skipping in json, skips it in marshalling,
next unmarshalling fails
* assets - name forms for use with mechanize
* api - match error message
* add python3/pyswagger based unittesting
- initializes a clean install by configuration via web service
- tests the rest api
* tests - test address exhaustion
* tests - test network expansion
Co-authored-by: Markus Koetter <koetter@cispa.de>