<?xml version="1.0" encoding="UTF-8"?>
<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="16">
<package pkgid="e567fa14b58927645dd7ff0c8e1cc2fa0fc382ed78735e2693511ef3ebc0e10e" name="libokta-auth-validator" arch="aarch64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="ac0c82e3297aeaf39e686005d8f0c73b9879f71cc4431d3854ba24fb5d185e3b" name="libokta-auth-validator" arch="ppc64le">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="a84c020f7f3a75cc1330596de51784e23c81f3e47eee1a86e5637d91a954600b" name="libokta-auth-validator" arch="x86_64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="be967f8337a9711d7d9f6441b5e3f65e9d2c84fb298a889ea86e4c1520e4a93c" name="libokta-auth-validator-devel" arch="aarch64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="b2f45cb4cc3e3704f1981050e52b5ec0cf9effae3ff9b96d0915678b21434c50" name="libokta-auth-validator-devel" arch="ppc64le">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="c419cc1b10fb88b7d22cf7275ba8fc1d38075a30e83f615b7ca2dba43d229026" name="libokta-auth-validator-devel" arch="x86_64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="fd68552f0d1ba27e3db6879e2a5c3ad1ece6c6295646a018be2075c79afc0c64" name="okta-auth-validator" arch="aarch64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="63076135ea454a3787f865a1d2bdbaa75fb2afcbd8037af6311233b5321afa88" name="okta-auth-validator" arch="ppc64le">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="2a8aacc693e4401a9a1b28acbf5e2fbb9a9db2e4bcb8548845365d232c2985ab" name="okta-auth-validator" arch="x86_64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="dd386079434eb06451c917da4e479ba2d4fbc2aea45d5cd4d2586c69bb4421db" name="okta-auth-validator-common" arch="aarch64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="b9f3198619c6567a12f98b1807c252aaf2aee25b58acd38b4b013c4d676a7de9" name="okta-auth-validator-common" arch="ppc64le">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="dbf3757bba306efbfafc7fa3a06ca3d3f7be54216c48f355afc0d64c65ee98a5" name="okta-auth-validator-common" arch="x86_64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="d7cadf47e322747ab0e8866c8f1021fe498629eb0d6d4f3d143cbd3c3a90a21e" name="openvpn-auth-okta" arch="aarch64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="bfa5bf92f8105ca302b0ee1f9bb7e19bd5e16e6c89c554153dbe7ea9a78140aa" name="openvpn-auth-okta" arch="ppc64le">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="94ddf77ac56f8e0f493fd3c04a582aad52def92d8d0cd52905d60a4f24f76534" name="openvpn-auth-okta" arch="src">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
<package pkgid="822db09998c552c126fe58f92f8414de84e103698b8fa468ce5a71dccb71d87b" name="openvpn-auth-okta" arch="x86_64">
  <version epoch="0" ver="2.9.1" rel="67.1"/>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.5-1" date="1702555200">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.6-1" date="1702641600">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.7-1" date="1702728000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.8-1" date="1702728001">- fix(oktaApiAuth): user may have multiple OTP providers, try all</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.9-1" date="1702900800">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.5.10-1" date="1702987200">- 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/</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.6.0-1" date="1703246400">- 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</changelog>
  <changelog author="vagrant &lt;jeremy.jacque@algolia.com&gt; 2.6.1-1" date="1707480000">- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.7.0-1" date="1708603200">- 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 &amp; 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.0-1" date="1708862400">- chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.17.0
- chore(deps): bump golang.org/x/net from 0.8.0 to 0.17.0
- 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</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; 2.8.1-1" date="1708948800">- chore(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0
- chore(deps): bump github.com/go-playground/validator/v10
- chore(ci): check go fmt
- fix(cmd): gofmt</changelog>
  <changelog author="Jeremy Jacque &lt;jeremy.jacque@algolia.com&gt; - 2.8.2-1" date="1715083200">- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.3-1" date="1719403200">- chore(dist): build using Golang 1.22
- fix(Makefile): raspbian always needs CGO
- 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
- 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
- chore(deps): bump github.com/phuslu/log from 1.0.102 to 1.0.106
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.4-1" date="1719835200">- chore(deps): bump github.com/phuslu/log from 1.0.106 to 1.0.107
- chore(oktaApiAuth): use Chrome on Linux user agent along with Sec-CH headers
- chore(oktaApiAuth): improve Push factor debugging</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.5-1" date="1734004800">- chore(oktaApiAuth): do not output token during Push factor debugging
- feat(ci): add an OBS workflow to trigger build on tag push
- 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
- 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</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.8.6-1" date="1746014400">- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0
- chore(test): use linkname to access OktaApiAuth pool in validator tests
- chore(deps): bump go to 1.24.1
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117
- chore(deps): bump golang.org/x/net from 0.36.0 to 0.38.0
- chore(deps): bump github.com/go-playground/validator/v10</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.0-1" date="1755604800">- chore(deps): bump go dep to 1.24 for packaging
- chore(doc): update list of available distro / arch
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.119
- feat: add an option to configure a separator between the VPN password and the TOTP passcode
- chore(validator): ensure the separator length is 1 - a character
- clean(validator/test): the TestParsePassword func has been move to utils test
- chore: add missing test for separator validity in ini file</changelog>
  <changelog author="Jeremy JACQUE &lt;jeremy.jacque@algolia.com&gt; - 2.9.1-1" date="1764590400">- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120
- chore(deps): bump github.com/go-playground/validator/v10
- chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0
- doc: expose MPL v2 licensing in README
- fix(openvpn-plugin): make sure the C source is a _XOPEN_SOURCE - fixes sigaction incomplete type
- chore: update Go to version 1.25
- chore(ci): update codacy orb
- chore(ci): update golangci-lint
- fix: multiple ggolangci-lint issues</changelog>
</package>
</otherdata>