All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- More prometheus metrics
- More UX improvements
- Google compatibility for refresh token (#32)
- Alternative Kubeconfig context name and clusters name (#31)
- Error page \o/
- Allow scopes overrides (#30)
- Add templates and assets override support (#27)
- Removed secret logging during startup
-
Generate a full kubeconfig output based on cluster list Also add 2 configuration options:
web.kubeconfig.defaultCluster
: default cluster name for kubeconfig (defaults to first cluster name in theclusters
list)web.kubeconfig.defaultNamespace
: default namespace for kubeconfig (defaults to "default" by default...)
Warning
Lot of breaking changes for:
- cli
- configuration
Please refers to the README.md for detailed documentation.
-
Documentation
-
Kind and skaffold dev env
-
You can now override configuration using environment variables:
"LOGINAPP_ABC" where ABC is the full path of the variable to override, exemple: LOGINAPP_OIDC_CLIENT_ID=mycustomid will override oidc.client.id key from config (issue #20)
-
Helm deployment
- Change directory structure
- Switch to cobra/viper for CLI
- User packr for embed assets
- In order to allow env var overrides, we had to change some variable
name. All variables (excluded
clusters
vars) follow a lower camel case convention:redirect_url
-->redirectURL
root_ca
-->rootCA
extra_scopes
-->oidc.extra.scopes
extra_auth_code_opts
-->oidc.extra.authCodeOpts
offline_as_scope
-->oidc.offlineAsScope
cross_clients
-->oidc.crossClients
main_username_claim
-->web.mainUsernameClaim
main_client_id
-->web.mainClientID
-
Remove
dep
as dependency manager, use go mod instead -
Remove all vendor dependencies from repository
-
Assets are now included with the binary, these options are removed:
web.assets_dir
web.templates_dir
-
Custom copy/paste fields (ex:
kubectl config set-cluster [...]
). Your can now setup clusters configuration:clusters: - name: mycluster server: https://mycluster.org certificate-authority: | -----BEGIN CERTIFICATE----- MIIC/zCCAeegAwIBAgIULkYvGJPRl50tMoVE4BNM0laRQncwDQYJKoZIhvcNAQEL BQAwDzENMAsGA1UEAwwEbXljYTAeFw0xOTAyMTgyMjA5NTJaFw0xOTAyMjgyMjA5 NTJaMA8xDTALBgNVBAMMBG15Y2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -----END CERTIFICATE-----
-
UX improvements, css/js has been changed for bootstrap
web_output.skip_main_page
does not longer exists, the index page was useless
-
Prometheus endpoint (:9090 by default)
Current available metrics:
- loginapp_request_total{"code", "method"}: Counter vector
- loginapp_request_duration{"code", "method"}: Gauge vector
More metrics will be added in feature minor upgrades
-
Support extra auth code options.
loginapp now supports extra auth code options, to ensure compatibility with IdP like ADFS (see issue #16) Configuration option:
[...] oidc: extra_auth_code_opts: resource: XXXXX [...]
-
Changelog :)
-
Code refactor: to easily add prometheus metrics, we had to split code. Current logic is:
cli.go
: CLI related codeconfig.go
: app configurationhandlers.go
: main router handlerslogging.go
: logging related codemain.go
: app entrypointprometheus.go
: prometheus metrics setuproutes.go
: main router setupserver.go
: server related codetemplates.go
: html templatesutil.go
: another util garbage file...
Also update checks and go fmt
-
Improve user requests logging: add return code
2.5.0 - 2018-12-21
- Show a kubectl based version of configuration update (see PR #12) from (@aveyrenc)[https://github.com/aveyrenc]
2.4.1 - 2018-11-05
- License field issues
2.4.0 - 2018-10-28
- Evacuate html templates from binary. It allows users to override default assets.
2.3.0 - 2018-10-24
-
Customizable username claim. You can now change output username claim in loginapp configuration.
Default is set to "name". "name" and "email" are common claims, the full list of supported claims are available at 'well-known' URL of your issuer (ex: https://dex.example.com/.well-known/openid-configuration)
-
Golang syntax improvements
- Configuration checks methods: simply code to easily include new configuration option and associated check function
2.2.0 - 2018-10-11
- Debug output
- Split CLI setup from main
offline_as_scope
option (see PR #4) from @robbiemcmichael- Log typos
2.1.0 - 2018-08-15
- HTML frontend click/copy feature
- Ability to use your own assets
- Skip main page option (
web_output.skip_main_page
) - Document new opts in README, add a dev doc
- Configuration checks
- Code refactoring
- Multiple client_id in html render when using cross_client feature
(related to option
web_output.main_client_id
).
2.0.2 - 2018-07-18
- Code checks and format: gofmt, errcheck, gocyclo, gosimple
2.0.1 - 2018-07-17
- App description and version in CLI
2.0.0 - 2018-07-13
-
Apache 2.0 LICENSE
-
Dependencies management
-
Better example files
-
Real CLI (
loginapp serve [configfile]
) -
Support loglevel configuration
-
Exponential retry backoff when at startup when setting up provider
-
/healthz
endpoint (for k8s) --> Check: provider is setup, provider availability
- Code refactoring
- Cleaner config format
- More debug (ex: middleware logger for incoming requests)
- Move code to root directory
- No more
alpine
Docker image, only scratch
1.1.1 - 2018-04-24
- quay.io repository: fydrah/loginapp
- DockerHub repository
- Typos
1.1.0 - 2018-04-06
- Docker images (scratch and alpine)
- Typos and add precise title for cross client field
- Useless entrypoint
1.0.0 - 2017-12-28
- Init