openvpn-auth-okta (2.8.5) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump github.com/go-playground/validator/v10
  * chore(deps): bump github.com/phuslu/log from 1.0.107 to 1.0.110
  * chore(deps): bump github.com/phuslu/log from 1.0.110 to 1.0.111
  * chore(deps): bump github.com/phuslu/log from 1.0.111 to 1.0.112
  * chore(deps): bump github.com/phuslu/log from 1.0.112 to 1.0.113
  * chore(deps): bump github.com/go-playground/validator/v10
  * chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0
  * chore(deps): bump golang.org/x/crypto from 0.21.0 to 0.31.0

  [ Jeremy JACQUE ]
  * chore(deps): set go version to 1.22
  * chore(ci): update codacy-coverage-reporter orb to 14.0.2
  * chore: update go to 1.23
  * chore(ci): update golangci-lint to 1.62.2

 -- Jeremy JACQUE <jeremy.jacque@algolia.com>  Thu, 12 Dec 2024 14:30:57 +0100

openvpn-auth-okta (2.8.4) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107

  [ Jeremy JACQUE ]
  * chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
  * chore(oktaApiAuth): improve Push factor debugging

 -- Jeremy JACQUE <jeremy.jacque@algolia.com>  Mon, 01 Jul 2024 11:56:41 +0000

openvpn-auth-okta (2.8.3) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump github.com/phuslu/log from 1.0.97 to 1.0.100
  * chore(deps): bump github.com/phuslu/log from 1.0.100 to 1.0.101
  * chore(deps): bump github.com/phuslu/log from 1.0.101 to 1.0.102
  * chore(deps): bump github.com/go-playground/validator/v10

  [ Jeremy JACQUE ]
  * chore(dist): build using Golang 1.22
  * chore(doc): fix codacy warnings in README
  * chore(ci): disable codacy checks for fixtures and test code
  * chore(doc): add codacy badge
  * fix(Makefile): /etc/os-release does not exist on MacOS, test before sourcing
  * chore(ci): push coverage report to Codacy
  * chore(lib): deduplicate identical piece of code
  * chore(doc): fix more markdown warnings

  [ dependabot[bot] ]
  * chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106

  [ dependabot[bot] ]
  * chore(deps): bump github.com/go-playground/validator/v10
  * chore: use sentinel errors when possible
  * fix(oktaApiAuth): do not print authRes.Result when it is empty
  * refacto(oktaApiAuth): dedup JSON api response processing
  * chore(doc): update coverage badge
  * fix(oktaApiAuth): gofmt
  * test(oktaApiAuth): use assert.EqualError instead of assert.Equal
  * test: use testify dedicated errors functions
  * fix: use a valid hardcoded user agent
  * chore(doc): update available package distros and archs
  * fix(oktaApiAuth): respect Go style guide
  * fix(oktaApiAuth): use fmt.Errorf instead of errors.New of fmt string
  * refacto(oktaApiAuth): simplify Okta Auth error handling using wrappers
  * chore(doc): update coverage badge
  * fix(oktaApiAuth): wrong authRes variable was tested
  * test(oktaApiAuth): add tests for parseOktaError

 -- Jeremy JACQUE <jeremy.jacque@algolia.com>  Wed, 26 Jun 2024 17:26:52 +0000

openvpn-auth-okta (2.8.2) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0
  * chore(deps): bump github.com/go-playground/validator/v10
  * chore(deps): bump github.com/phuslu/log from 1.0.88 to 1.0.89
  * chore(deps): bump github.com/phuslu/log from 1.0.89 to 1.0.90
  * chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0
  * chore(deps): bump github.com/phuslu/log from 1.0.90 to 1.0.91
  * chore(deps): bump github.com/go-playground/validator/v10
  * chore(deps): bump github.com/phuslu/log from 1.0.91 to 1.0.92
  * chore(deps): bump github.com/phuslu/log from 1.0.92 to 1.0.93
  * chore(deps): bump github.com/phuslu/log from 1.0.93 to 1.0.96
  * chore(deps): bump github.com/phuslu/log from 1.0.96 to 1.0.97

  [ Jeremy JACQUE ]
  * feat(lib): allow to use a struct for PluginEnv
  * feat(lib): provide a way to compute lib args from plugin envp, args passed as a struct
  * fix(Makefile): use proper inc dirs for gcc and cppcheck
  * feat(lib): rename the C function computing args
  * doc: add some comments
  * fix(lib): gotfmt
  * chore(lib): let the user allocate and free himself the ArgsOktaAuthValidatorV2 struct
  * refacto(plugin): mutualize error code during lib related calls
  * chore(cmd): add missing license header

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Tue, 07 May 2024 12:47:00 +0000

openvpn-auth-okta (2.8.1) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
  * chore(deps): bump github.com/go-playground/validator/v10

  [ Jeremy JACQUE ]
  * chore(ci): check go fmt
  * fix(cmd): gofmt

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Mon, 26 Feb 2024 08:28:08 +0000

openvpn-auth-okta (2.8.0) stable; urgency=medium

  [ dependabot[bot] ]
  * chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0

  [ dependabot[bot] ]
  * chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0

  [ Jeremy JACQUE ]
  * fix(oktaApiAuth): do not return "valid" http 500 on request error
  * chore: add comments and basic traces
  * chore(oktaApiAuth): add validity checks on Okta groups
  * feat(validator): allow various log level and to set it up in the conf file
  * chore(doc): update coverage badge
  * chore: normalize validator constructor name
  * chore: normalize oktaApiAuth constructor name
  * chore(validator): if log level has been set in constructor, use it as default if not provided in config
  * refacto: use phuslu/log instead of logrus for better perf/memory usage
  * chore(go): clean sums

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Sun, 25 Feb 2024 21:56:40 +0000

openvpn-auth-okta (2.7.0) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(debian): allow building with go 1.22
  * chore(go): add go-playground/validator for API response validation
  * chore(go): use proper json unmarshaling/validation instead of string parsing for API responses
  * refacto(oktaApiAuth): factorize common (first step) MFA verification code
  * chore(oktaApiAuth/test): test MFA with multiple push retries
  * refacto(oktaApiAuth/test): split TestAuth function
  * chore(oktaApiAuth) respect API spec anf honor HTTP codes
  * chore(oktaApiAuth/test): respect API spec anf honor HTTP codes
  * chore(oktaApiAuth): factorize TOTP and Push MFA verification code
  * refacto(oktaApiAuth): dedup and simplify doAuthFirstStep code
  * fix(oktaApiAuth): Okta will never answer success at first push MFA verify call
  * fix(oktaApiAuth): status is mandatory in a AuthResponse
  * fix(oktaApiAuth): add missing cancel in verifyFactors, simplify if/else with return
  * fix(oktaApiAuth): return proper error for checkAllowedGroups HTTP error
  * chore(oktaApiAuth/test): cover all Auth scenarii
  * chore(oktaApiAuth/test): increase coverage of CheckAllowedGroups
  * chore(doc): update coverage badge
  * chore(oktaApiAuth/test): add auth_invalid_totp_no_sum fixture file
  * chore(oktaApiAuth): cancelAuth is a fire & forget, no need for return values
  * chore(oktaApiAuth): add some debug messages
  * chore(doc): update coverage badge
  * fix(oktaApiAuth): reset AuthResponse at each loop iteration to prevent persistency issues
  * chore: make TOTP to Push fallback configurable
  * refacto: simplify code - remove else when not needed

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Thu, 22 Feb 2024 04:13:56 +0000

openvpn-auth-okta (2.6.1) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(go): fmt
  * chore(ci): remove snyk jobs as we are decommissioning it
  * chore(doc): simplify pkg install section by using OBS instruction page
  * chore: add license header to source files

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 09 Feb 2024 21:33:15 +0000

openvpn-auth-okta (2.6.0) stable; urgency=medium

  [ Jeremy JACQUE ]
  * fix(plugin): add missing dlclose
  * chore(Makefile): minimize built file size and trimpath
  * chore(Makefile): clean unused vars and targets, tune go build params
  * refacto(go): simplify logging by using different fomatter before and after username is set
  * chore(doc): update coverage badge
  * chore(doc): add a section about logs
  * refacto(oktaApiAuth): split oktaApiAuth package into multiple files
  * refacto(oktaApiAuth/test): split oktaApiAuth tests into multiple files
  * refacto(validator): integrate utils pkg as it is only used by validator
  * refacto(validator): split validator package into multiple files
  * refacto(validator/test): split validator tests into multiple files
  * refacto(Makefile): use a shell cmd to get the full list of pkg files for dependencies
  * fix(Makefile): GOLDFLAGS has been renamed GOPLUGIN_LDFLAGS in a previous commit
  * refacto(oktaApiAuth/test): use types_test.go only for stuff common to multiple tests
  * refacto(validator): move checkControlFilePerm to utils(_test)
  * chore(oktaApiAuth): add a todo for Pool only used in tests

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 22 Dec 2023 06:56:20 +0000

openvpn-auth-okta (2.5.10) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(oktaApiAuth): rephrase/enrich log outputs
  * chore(validator): rephrase/enrich log outputs
  * chore: create a dedicated func for logging setup (formatting with uuid, log-level)
  * chore(go): add uuid package needed for logging
  * chore(tools): update url for https://toolkit.okta.com/apps/

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Tue, 19 Dec 2023 02:45:59 +0000

openvpn-auth-okta (2.5.9) stable; urgency=medium

  [ Jeremy JACQUE ]
  * refacto(oktaApiAuth): handle totp and push MFA sequentialy with different error msg
  * chore(oktaApiAuth/test): rename MFA errors, add test for invalid response for totp auth
  * fix(oktaApiAuth): continue outer loop when push triggers error and not last
  * chore(oktaApiAuth/test): test if multiple TOTP or push providers are possible
  * chore(doc): update coverage badge
  * refacto(oktaApiAuth): split validateUserMFA with 2 more functions (TOTP and push)
  * chore(oktaApiAuth/test): implement tests following refacto

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Mon, 18 Dec 2023 01:36:45 +0000

openvpn-auth-okta (2.5.8) stable; urgency=medium

  [ Jeremy JACQUE ]
  * fix(oktaApiAuth): user may have multiple OTP providers, try all

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Sat, 16 Dec 2023 13:13:50 +0000

openvpn-auth-okta (2.5.7) stable; urgency=medium

  [ Jeremy JACQUE ]
  * fix(oktaApiAuth): handle properly transaction cancelation, only when needed
  * fix(oktaApiAuth/test): fix with new calls to transaction cancellation
  * chore(doc): update coverage badge
  * chore(oktaApiAuth): homogenize / clean auth logs
  * fix(oktaApiAuth): handle properly TOTP error (invalid passcode)
  * chore(oktaApiAuth): simplify validateMFA signature
  * chore(oktaApiAuth): rename some functions/vars for better readability
  * fix(oktaApiAuth): respect MFAPushMaxRetries count, saves an API call/MFAPushDelaySeconds sleep
  * feat(oktaApiAuth): handle expired password (only when no active MFA)
  * chore(config): clean a bit api.ini config template
  * chore(doc): rearrange and fix typo in README
  * fix(dist): add missing packages in dsc

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Sat, 16 Dec 2023 07:36:56 +0000

openvpn-auth-okta (2.5.6) stable; urgency=medium

  [ Jeremy JACQUE ]
  * style: gofmt some source files
  * refacto(oktaApiAuth): reduce gocyclo score of Auth to an acceptable score
  * chore(oktaApiAuth): homogenize some Auth logs
  * chore(oktaApiAuth/test): add a test for invalid preauth response
  * chore(doc): update coverage badge

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 15 Dec 2023 12:50:53 +0000

openvpn-auth-okta (2.5.5) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(validator): add msg for setup failures
  * chore: use logrus to have a clean output
  * fix(Makefile): missing source deps in targets
  * chore(doc): update coverage badge
  * fix(Makefile): allow to build on MacOS
  * chore(validator): handle properly new config files names
  * chore(Makefile): add proper MacOS ldflags for libs
  * chore(oktaApiAuth): allow POST and GET in oktaReq
  * feat(oktaApiAuth): check if user is a member of an AllowedGroup
  * feat((oktaApiAuth/test): test checkAllowedGroups functions
  * feat(config): add AllowedGroups option
  * chore(doc): update coverage badge
  * feat(oktaApiAuth/test): add invalid payload test
  * chore(validator/test): check config file detection
  * chore(validator/test): test wrongly formatted ini file
  * chore(doc): update coverage badge
  * chore(github): remove refs to pip in dependabot

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Thu, 14 Dec 2023 21:09:10 +0000

openvpn-auth-okta (2.5.4) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore: rename config files
  * fix(doc): fix invalid license header
  * chore(doc): small README updates
  * chore(doc): remove CODE.md as the pkg is now referenced in pkg.go.dev
  * chore(doc): update authors
  * chore(dist): move tool to update packages version
  * chore(config): move config files to a dedicated dir
  * chore(Makefile): enforce some compiler options
  * fix(debian): ensure proper config files permissions

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Thu, 26 Oct 2023 22:20:24 +0000

openvpn-auth-okta (2.5.3) stable; urgency=medium

  [ Jeremy JACQUE ]
  * style(utils): use gofmt std indentation
  * style(oktaApiAuth): use gofmt std indentation
  * style(validator): use gofmt std indentation
  * style(cmd): use gofmt std indentation
  * style(lib): use gofmt std indentation
  * chore(doc): update coverage badge
  * chore(doc): add doc ref and goreportcard badges
  * chore(pkg): rename config files
  * chore(Makefile): rename config files
  * chore(dist): rename config files
  * chore(doc): rename config files
  * chore(git): rename config files

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Wed, 25 Oct 2023 08:28:10 +0000

openvpn-auth-okta (2.5.2) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(oktaApiAuth): add comments for functions
  * chore(utils): add comments for functions
  * chore(validator): remove useless function
  * chore(validator): add comments for functions
  * chore(validator): do not set clientIp when not needed
  * chore(oktaApiAuth): clientIp is not set anymore to 0.0.0.0
  * chore(oktaApiAuth): add struct comments
  * chore(validator): add struct comments

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Wed, 25 Oct 2023 01:38:42 +0000

openvpn-auth-okta (2.5.1) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(pkg): relocate http pool initialisation from utils to oktaApiAuth
  * chore(utils): simplify test
  * chore(utils): add a function to remove comments from a slice
  * chore(validator): remove from the pinset list empty lines and comments
  * chore(utils): simplify CheckUsernameFormat

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Tue, 24 Oct 2023 01:03:42 +0000

openvpn-auth-okta (2.5.0) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(pkg): remove now useless types package
  * chore(oktaApiAuth): move types in pkg, split constructor, make needed struct fields public
  * chore(oktaApiAuth/test): struct has been renamed, test InitPool
  * chore(validator): move types in pkg, parse for passcode here, move okta api related struct
  * chore(validator/test): adapt to latest changes, add more tests
  * chore(lib): adapt to struct moves
  * chore(testing): add new fixture for validator
  * chore(doc): reflect latest changes
  * chore(validator): remove useles comments, error test
  * chore(doc): update coverage badge after new tests implem
  * chore(debian): add missing common package for config files
  * chore(dist): split RPM pkg to have a dedicated config file one
  * chore(tools): small fix
  * fix(dist): add missing description for okta-auth-validator-common
  * chore(dist): fix some rpmlint issues
  * chore(cfg): remove algolia ref

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Sun, 22 Oct 2023 23:37:45 +0000

openvpn-auth-okta (2.4.3) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore: change plugin file name to be aligned with other OpenVPN plugins
  * chore(doc): fix typo in install section and add info about OpenVPN tmp dir
  * chore(plugin): rename source according to new plugin file name
  * chore(doc): update with new plugin name
  * chore(git): now all produced files are in a dedicated dir, so ignore this dir

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 20 Oct 2023 07:36:46 +0000

openvpn-auth-okta (2.4.2) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(validator): refacto to remove useless functions and better err control on Authenticate
  * chore(cmd/okta-auth-validator): adapt to new Authenticate return type
  * chore(lib): adapt to new Authenticate return type
  * chore(validator/test): test new Authenticate err returned
  * chore(oktaApiAuth/test): test the case where we need to sort the offered MFAs
  * fix(validator/test): handle possible nil error
  * chore(oktaApiAuth/test): test the case where preAuth fails (connection issue)
  * chore(fixtures): add preauth_mfa_required_multi used by oktaApiAuth/TestAuth
  * chore(doc): update coverage badge after new tests implem

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 20 Oct 2023 02:28:46 +0000

openvpn-auth-okta (2.4.1) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore: renamed repo and packages
  * chore(github): add code owners and PR template
  * chore(Makefile): change config files location
  * chore(doc): change config files location
  * chore(dist): change config files location
  * chore(validator): change default config files location

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Thu, 19 Oct 2023 14:19:03 +0000

openvpn-auth-okta (2.4.0) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(debian): split package
  * chore(dist): split package
  * chore(dist): update rpmlintrc filters
  * fix(tools): work on current branch to generate changelogs

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Thu, 19 Oct 2023 07:47:08 +0000

openvpn-auth-okta (2.3.4) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore: remove unneeded defer_simple source code
  * chore(doc): add section about package installation
  * chore(dist): remove refs to defer_simple in spec file

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Wed, 18 Oct 2023 22:16:12 +0000

openvpn-auth-okta (2.3.3) stable; urgency=medium

  * chore(Makefile): add missing soname to shared lib
  * chore(Makefile): binary should bo to /usr/bin
  * chore(dist): add files needed to build packages
  * chore(dist): add script to manage versions
  * chore(debian): Update changelog for 2.3.2 release
  * chore(dist): Update changelog for 2.3.2 release
  * chore(debian): add source format
  * fix(Makefile): create bin dir before install
  * fix(debian): wrong package format
  * chore(defer_okta_openvpn): fix indent, do not store useless pointer in context
  * chore: rename function for clarity
  * chore(Makefile): DESTDIR should be empty by default
  * chore: rename okta_openvpn to okta-auth-validator to be more generic
  * fix(lib): wrong (previous) export function name
  * chore: rename C source file
  * chore: rename lib to be more generic
  * chore(oktaApiAuth): do not flood openvpn logs with useless messages
  * chore(dist): Update changelog for 2.3.3 release

 -- Jeremy JACQUE <jeremy.jacque@algolia.com>  Wed, 18 Oct 2023 14:01:30 +0000

openvpn-auth-okta (2.3.2) stable; urgency=medium

  [ Jeremy JACQUE ]
  * chore(Makefile): symlink is not needed as dlopen follows ld.so
  * chore(Makefile): add missing soname to shared lib
  * chore(Makefile): binary should bo to /usr/bin
  * chore(dist): add files needed to build packages
  * chore(dist): add script to manage versions

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Wed, 18 Oct 2023 08:32:24 +0000

openvpn-auth-okta (2.3.1-algolia) stable; urgency=medium
  * Version 2.3.1:
    Fix loading of Golang c-shared in plugin (use dlopen)
    Use a dedicated struct instead of exporting to env user infos when using
      shared plugin for security reasons

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Mon, 13 Oct 2023 04:04:41 +0200

openvpn-auth-okta (2.3.0-algolia) stable; urgency=medium
  * Version 2.3.0:
    Implement "full" shared lib plugin

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Mon, 13 Oct 2023 04:04:41 +0200

openvpn-auth-okta (2.2.3-algolia) stable; urgency=medium
  * Version 2.2.3:
    Fix makefile and debian files

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Sat, 14 Oct 2023 14:31:41 +0200

openvpn-auth-okta (2.2.2-algolia) stable; urgency=medium
  * Version 2.2.2:
    Handle all OpenVPN auth plugin modes and methods
    Add testing for almost all packages functions
    Updated doc (README, AUTHORS, CODE)

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Fri, 13 Oct 2023 22:51:41 +0200

openvpn-auth-okta (2.1.1-algolia) stable; urgency=medium

  * Version 2.1.1:
    First Golang implementation
    Fix defer_plugin (passing script instead of argv to execve)
    Updated Makefile and debian files

 -- Jeremy Jacque <jeremy.jacque@algolia.com>  Mon,  9 Oct 2023 05:30:41 +0200
