Commit Graph
100 Commits
Author SHA1 Message Date
Stavros da247f8552 fix: handle oauth provider id mismatch correctly 2026-03-30 23:02:20 +03:00
Stavros 7139ad1cc6 fix: use correct go image in docker build 2026-03-30 19:21:50 +03:00
StavrosandGitHub 5811218dbf refactor: tests (#731)
* tests: rework tests for context controller

* tests: add tests for health controller

* tests: add tests for oidc controller

* tests: use testify assert in context and health controller

* tests: add tests for user controller

* tests: add tests for resources controller

* tests: add well known controller tests

* test: add proxy controller tests

* chore: review comments

* chore: more review comments

* chore: cancel lockdown in testing

* tests: fix get cookie domain tests

* chore: add comment for testing passwords
2026-03-30 15:31:34 +03:00
Stavros f65df872f0 refactor: allow root domain app urls for testing 2026-03-29 20:27:09 +03:00
StavrosandGitHub d3cda06a75 feat: add lockdown mode on multiple login attempts (#727)
* feat: add lockdown mode on multiple login attempts

* fix: review comments

* fix: fix typo
2026-03-28 20:35:49 +02:00
StavrosandGitHub f26c217161 refactor: oauth flow (#726)
* wip

* feat: add oauth session impl in auth service

* feat: move oauth logic into auth service and handle multiple sessions

* tests: fix tests

* fix: review comments

* fix: prevent ddos attacks in oauth rate limit
2026-03-22 21:03:32 +02:00
StavrosandGitHub dc3fa58d21 refactor: refactor proxy controller to handle proxy auth modules better (#714)
* wip

* fix: add extauthz to friendly error messages

* refactor: better module handling per proxy

* fix: get envoy host from the gin request

* tests: rework tests for proxy controller

* fix: review comments
2026-03-14 19:56:15 +02:00
Stavros b3de69e5d6 chore: add comment explaining uri header 2026-03-12 16:36:13 +02:00
Stavros 016a954963 fix: make a x forwarded uri an non required header 2026-03-12 16:26:42 +02:00
StavrosandGitHub 9eb2d33064 New translations en.json (French) (#702) 2026-03-11 16:49:20 +02:00
Stavros b2a1bfb1f5 fix: validate client id on oidc token endpoint 2026-03-11 16:48:04 +02:00
Stavros f1e869a920 fix: ensure user context has is logged in set to true 2026-03-11 15:57:50 +02:00
Stavros cc5a6d73cf tests: ensure all forwarded headers are set on tests 2026-03-11 15:53:39 +02:00
Stavros b2e3a85f42 chore: update version in example compose 2026-03-11 15:47:22 +02:00
Stavros 2e03eb9612 fix: do not continue auth on empty x-forwarded headers 2026-03-11 15:46:09 +02:00
Stavros 55c33f7a8e chore: update readme 2026-03-10 17:57:49 +02:00
Stavros b6eb902d47 fix: fix typo in public key loading 2026-03-08 15:54:50 +02:00
Stavros e3bd834b85 fix: support pkix public keys in oidc 2026-03-08 11:39:16 +02:00
Stavros d7d540000f fix: state should not be a required field in oidc 2026-03-08 11:17:44 +02:00
Stavros 766270f5d6 fix: add kid header to id token 2026-03-08 11:07:15 +02:00
StavrosandGitHub 1d76cb84b9 New Crowdin updates (#684)
* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Chinese Simplified)
2026-03-04 19:41:21 +02:00
Stavros 69c6c0ba1d fix: add cache control header to token response 2026-03-04 19:38:52 +02:00
Stavros a71f61df8d feat: add email verified claim 2026-03-04 15:52:31 +02:00
StavrosandGitHub 6bf444010b feat: add nonce claim support to oidc server (#686)
* feat: add nonce claim support to oidc server

* fix: review feedback
2026-03-04 15:34:11 +02:00
Stavros 0e6bcf9713 fix: lookup config file options correctly in file loader 2026-03-03 22:48:44 +02:00
Stavros af5a8bc452 fix: handle empty client name in authorize page 2026-03-03 22:48:44 +02:00
Stavros de980815ce fix: include kid in jwks response 2026-03-03 22:48:44 +02:00
StavrosandGitHub 189ad7115a New translations en.json (Serbian (Cyrillic)) (#683) 2026-03-02 20:17:41 +02:00
Stavros 2f2556d480 fix: set correct paths in dockerfiles 2026-03-02 20:15:51 +02:00
Stavros f1512f45b7 chore: update example env 2026-03-02 19:53:17 +02:00
StavrosandGitHub cd410b6cdf refactor: categorize leftover config options (#682)
* refactor: categorize leftover config options

* chore: update config description
2026-03-02 19:49:59 +02:00
StavrosandGitHub 24c5b35bdf feat: add user info claims to id token (#681)
* feat: add user info claims to id token

* fix: omit empty user info values
2026-03-02 16:08:17 +02:00
StavrosandGitHub 414fab11fb New Crowdin updates (#678)
* New translations en.json (Polish)

* New translations en.json (Dutch)
2026-03-02 16:03:43 +02:00
Stavros c48181a8d8 refactor: use lowercase translated placeholders in login form 2026-03-02 15:58:52 +02:00
Stavros 06a26e976b fix: fix authorize app initial box not being a box 2026-03-02 15:50:08 +02:00
StavrosandGitHub 27d14d6b21 New Crowdin updates (#676)
* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

* New translations en.json (Arabic)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Dutch)

* New translations en.json (Norwegian)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)
2026-03-01 13:56:21 +02:00
Stavros 0354c9a122 chore: update screenshot 2026-03-01 13:52:27 +02:00
Stavros 4bed73d0fb refactor: pass all search params to correct domain in domain warning 2026-03-01 13:42:52 +02:00
StavrosandGitHub d0e39c6149 refactor: card title and layout tweaks (#675)
* refactor: card title and layout tweaks

* chore: review comments

* refactor: update domain warning screen
2026-03-01 13:36:43 +02:00
StavrosandGitHub 89da4028bb New Crowdin updates (#674)
* New translations en.json (French)

* New translations en.json (Ukrainian)
2026-02-28 15:02:16 +02:00
Stavros cd168cd435 docs: update contributing guide 2026-02-28 14:53:55 +02:00
Stavros dea8d72f01 feat: add configuration guide in create oidc client command 2026-02-27 20:04:02 +02:00
Stavros 43e0f3e713 chore: add correct oidc service documetation url 2026-02-26 17:37:47 +02:00
StavrosGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
14c08172d8 New Crowdin updates (#669)
* New translations en.json (Serbian (Cyrillic))

* chore: apply bot suggestion

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-26 17:30:41 +02:00
StavrosandGitHub 4a1889c20b feat: oidc client create command (#672)
* feat: add oidc client create command

* refactor: use own utility for creating random strings (more flexible
than stdlib)

* feat: validate client name to avoid config errors

* refactor: limit to only alphanumeric characters and hyphens

* refactor: remove the need of the logger in the create oidc client cmd
2026-02-26 17:28:58 +02:00
StavrosandGitHub d0560fa6b6 New translations en.json (Italian) (#668) 2026-02-25 19:13:02 +02:00
Stavros 699d8d173f fix: auto gen warning on example env and use correct cli flag in md gen 2026-02-24 16:11:25 +02:00
StavrosandGitHub 36b1594fb8 New Crowdin updates (#660)
* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* chore: bot comments
2026-02-23 19:52:54 +02:00
Stavros bb96472cc4 refactor: use rollup manual chunking instead of custom function 2026-02-23 19:28:44 +02:00
StavrosandGitHub e4c4e34d5c feat: add markdown generation to config generator (#652) 2026-02-17 15:46:38 +02:00
StavrosandGitHub 3f3072254e feat: optimize vite chunks (#651) 2026-02-17 14:46:03 +02:00
StavrosandGitHub 6112f977ea feat: auto generate example env file (#647)
* feat: auto generate example env file

* refactor: simplify build paths func and better slice handling

* chore: forgot to stage everything

* chore: review comments

* refactor: remove square brackets because they mess up the syntax
highlighting

* refactor: use lowercase name to mark dynamic values
2026-02-16 23:39:05 +02:00
Stavros e078e8a3f0 refactor: move disable ui warnings to ui cfg and trusted proxies to auth
cfg
2026-02-16 19:18:40 +02:00
Stavros ce8493239e fix: don't escape backend values in the frontend (translations) 2026-02-11 19:25:33 +02:00
Stavros 71fe73cca0 chore: fix typo in makefile develop recipe 2026-02-11 19:13:09 +02:00
Stavros 0fe89ae4e4 chore: use sslip in development compose 2026-02-11 19:08:43 +02:00
Stavros 22c4c262ea feat: add support for client secret post auth to oidc token endpoint 2026-02-07 21:04:58 +02:00
Stavros baf4798665 fix: fix typo in oidc trusted redirect uris config 2026-02-07 12:59:25 +02:00
Stavros bea680edec fix: healthcheck should not use public app url 2026-02-07 12:57:10 +02:00
StavrosandGitHub 3eea68ae0c New Crowdin updates (#631)
* New translations en.json (Italian)

* New translations en.json (Italian)

* New translations en.json (Hungarian)

* New translations en.json (German)

* New translations en.json (Czech)

* New translations en.json (Ukrainian)

* New translations en.json (Ukrainian)

* New translations en.json (German)

* New translations en.json (Portuguese)

* New translations en.json (Turkish)

* New translations en.json (Dutch)

* New translations en.json (Dutch)

* New translations en.json (Dutch)

* New translations en.json (Ukrainian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Arabic)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Dutch)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Romanian)

* New translations en.json (Afrikaans)

* New translations en.json (Catalan)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Norwegian)

* New translations en.json (English)

* New translations en.json (French)

* New translations en.json (French)

* New translations en.json (Polish)

* New translations en.json (Dutch)

* New translations en.json (Ukrainian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Arabic)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Dutch)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Serbian (Cyrillic))

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Romanian)

* New translations en.json (Afrikaans)

* New translations en.json (Catalan)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Norwegian)
2026-02-07 12:35:08 +02:00
StavrosandGitHub f08d8593ea refactor: rework frontend use effect calls (#630)
* refactor: rework frontend use effect calls

* fix: rabbit comments

* fix: handle empty oauth url in login page
2026-02-07 12:01:19 +02:00
Stavros ce25f9561f fix: ensure service configured check is set to true when service is
configured
2026-02-02 16:32:08 +02:00
Stavros f24595b24e fix: add more config loaders in the healthcheck command 2026-02-02 16:25:49 +02:00
Stavros 285edba88c refactor: better is configured check for ldap and oidc service 2026-02-02 16:25:49 +02:00
Stavros 51d95fa455 fix: do not append domains to users that have an email as the username 2026-02-02 16:25:49 +02:00
Stavros fd16f91011 fix: ensure oidc service is configured before performing any actions 2026-02-02 16:25:49 +02:00
Stavros fb671139cd feat: auto generate redirect url if empty 2026-02-02 16:25:49 +02:00
Stavros eff5fc8b71 refactor: use is configured check in ldap service 2026-02-01 19:05:42 +02:00
StavrosandGitHub 671343f677 feat: oidc (#605)
* chore: add oidc base config

* wip: authorize page

* feat: implement basic oidc functionality

* refactor: implement oidc following tinyauth patterns

* feat: adapt frontend to oidc flow

* fix: review comments

* fix: oidc review comments

* feat: refresh token grant type support

* feat: cleanup expired oidc sessions

* feat: frontend i18n

* fix: fix typo in error screen

* tests: add basic testing

* fix: more review comments

* refactor: rework oidc error messages

* feat: openid discovery endpoint

* feat: jwk endpoint

* i18n: fix typo

* fix: more rabbit nitpicks

* fix: final review comments

* i18n: authorize page error messages
2026-02-01 19:00:59 +02:00
Stavros 252ba10f48 feat: auto submit totp code when it is filled 2026-01-30 20:26:47 +02:00
Stavros 6431afb7d1 refactor: handle subcommands properly 2026-01-29 15:54:29 +02:00
Stavros 402dfa727b chore: update traefik and add use infisical as an options for secrets in
dev
2026-01-21 12:50:03 +02:00
Stavros d67c3ab8a4 fix: ensure safe redirect check only accepts actual domains 2026-01-17 20:36:42 +02:00
Stavros 87e2b52a04 fix: set gin mode correctly 2026-01-17 20:26:48 +02:00
StavrosandGitHub 4926e53409 feat: ldap group acls (#590)
* wip

* refactor: remove useless session struct abstraction

* feat: retrieve and store groups from ldap provider

* chore: fix merge issue

* refactor: rework ldap group fetching logic

* feat: store ldap group results in cache

* fix: review nitpicks

* fix: review feedback
2026-01-17 20:03:29 +02:00
StavrosandGitHub e3f92ce4fc refactor: simplify user parsing (#571) 2026-01-08 16:03:37 +02:00
Stavros 454612226b chore: move sql files to sql directory 2026-01-08 15:35:58 +02:00
StavrosandGitHub 1ffb838c0f feat: add support for global ip filters (#567) 2026-01-08 15:26:53 +02:00
Stavros 1dc83c835c feat: add makefile to simplify development 2026-01-07 16:30:33 +02:00
Stavros 721f302c0b chore: fix typo in example env 2026-01-07 13:25:39 +02:00
StavrosandGitHub f1e2b55cd1 fix: add rate limiting in the forward auth endpoint (#555) 2025-12-31 21:04:08 +02:00
StavrosandGitHub 7e17a4ad86 refactor: replace gorm with vanilla sql and sqlc (#541)
* refactor: replace gorm with vanilla sql and sqlc

* chore: go mod tidy

* refactor: rebase for main

* tests: fix tests

* fix: review comments
2025-12-31 17:59:21 +02:00
StavrosandGitHub 9a3fecd565 feat: non-docker acls (#549)
* wip

* feat: add paerser as submodule and apply patch for nested maps

* refactor: update release workflows to include submodule and patches

* chore: update contributing instructions
2025-12-30 18:26:57 +02:00
Stavros 986ac88e14 Merge branch 'main' of https://github.com/steveiliop56/tinyauth 2025-12-29 19:46:38 +02:00
Stavros b159f44729 fix: add missing ldap search filter 2025-12-29 19:46:33 +02:00
StavrosandGitHub 43487d44f7 feat: forward sub from oidc providers (#543)
* feat: forward sub from oidc providers

* fix: review comments
2025-12-26 19:02:51 +02:00
StavrosandGitHub 2d8af0510e feat: refresh session cookie when session is active (#540)
* feat: refresh session cookie when session is active

* refactor: use current time to set new expiry
2025-12-26 17:55:54 +02:00
StavrosandGitHub a1c3e416b6 refactor: use proper module name (#542)
* chore: reorganize go mod

* refactor: use proper module name
2025-12-26 17:53:24 +02:00
Stavros 7269fa1b95 chore: disable issue enrichment in coderabbit 2025-12-23 23:10:33 +02:00
ef25872fc3 feat: add support for Envoy proxy (#538)
* feat: add support for 'envoy' proxy in proxyHandler validation

* refactor: simplify proxy route setup by consolidating envoy handling

* feat(proxy): add method validation for proxy authentication

* fix(proxy): reorder method validation for proxy authentication

* refactor: use a slice to check for supported proxies

---------

Co-authored-by: pushpinderbal <me@s1ngh.ca>
Co-authored-by: Pushpinder Singh <53684951+pushpinderbal@users.noreply.github.com>
Co-authored-by: Pushpinder Singh <pushpinder.singh@arcticwolf.com>
2025-12-22 22:28:34 +02:00
StavrosandGitHub 03ed18343e feat: unified config (#533)
* chore: add yaml config ref

* feat: add initial implementation of a traefik like cli

* refactor: remove dependency on traefik

* chore: update example env

* refactor: update build

* chore: remove unused code

* fix: fix translations not loading

* feat: add experimental config file support

* chore: mod tidy

* fix: review comments

* refactor: move tinyauth to separate package

* chore: add quotes to all env variables

* chore: resolve go mod and sum conflicts

* chore: go mod tidy

* fix: review comments
2025-12-22 22:13:40 +02:00
StavrosandGitHub 78f97c8550 refactor: split bootstrap to smaller files for better readability (#518)
* refactor: split bootstrap to smaller files for better readability

* chore: rename setup routes to setup router

* fix: assign configured providers to app context
2025-12-17 15:04:09 +02:00
Stavros 2f4f2505d7 fix: fix language selector and language detection 2025-12-08 19:03:41 +02:00
StavrosandGitHub 8a3f2080c6 New translations en.json (Portuguese, Brazilian) (#474) 2025-11-23 14:10:12 +02:00
Stavros 641b9aa531 feat: log unsafe redirect uri in oauth controller 2025-11-23 14:06:35 +02:00
Stavros 6c90046343 feat: add option to disable ui warnings 2025-11-21 17:37:08 +02:00
StavrosandGitHub e79d1a8faf New Crowdin updates (#450)
* New translations en.json (Chinese Traditional)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)
2025-11-21 16:19:24 +02:00
Stavros 9d21d6a14f fix: use lowercase portuguese code tags 2025-11-21 16:10:00 +02:00
Stavros e0a8cf5441 fix: set correct bin location in air 2025-11-16 19:42:14 +02:00
Stavros 6d663bb1e8 fix: use unix seconds in db cleanup 2025-11-15 11:45:19 +02:00