Commit Graph
100 Commits
Author SHA1 Message Date
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
Stavros f4411af0a5 refactor: do not install delve on every rebuild 2025-11-15 11:41:42 +02:00
Stavros 8453c48d9e feat: add log in json option 2025-11-06 18:11:43 +02:00
Stavros 2af036b38e feat: add logging for session creation 2025-11-06 16:18:01 +02:00
StavrosandGitHub 32539b0ae9 New translations en.json (Finnish) (#418) 2025-11-04 18:42:42 +02:00
Stavros 60dada86a6 feat: add support for listening on unix sockets 2025-11-04 18:42:04 +02:00
Stavros bb1ecd4183 fix: allow for all subdomains to be considered safe for redirection 2025-11-04 17:58:56 +02:00
Stavros 57aca58de3 fix: ensure providers prefix exists on env variables and flags 2025-11-04 17:50:56 +02:00
Stavros e23f4f1371 chore: disable env acls 2025-11-04 17:48:45 +02:00
Stavros 20fb63532c fix: build frontend in ci 2025-11-03 21:30:19 +02:00
Stavros 5f7e89c330 feat: enable eslint in ci 2025-10-31 16:13:51 +02:00
StavrosandGitHub 330c7aa8f1 feat: add support for light mode (#438)
* feat: add support for light mode

* refactor: use shadcn theme toggle

* fix: fix sonner
2025-10-31 15:55:50 +02:00
StavrosandGitHub 0227af6d2b refactor: rework decoders logic for cleaner code (#431)
* refactor: rework decoders logic for cleaner code

* refactor: use strcase lib to handle text case conversions
2025-10-26 12:01:19 +02:00
Stavros 6647c6cd78 refactor: use gorm generics api for database actions 2025-10-19 19:16:53 +03:00
Stavros 7231efcbc3 feat: add routine to cleanup expired sessions 2025-10-19 19:10:24 +03:00
Stavros 5482430907 refactor: generate a verifier on every oauth auth session 2025-10-19 19:03:38 +03:00
Stavros 57b7b66813 fix: let docker meta decide if the version is latest or not 2025-10-14 15:45:50 +03:00
Stavros 64222b6d15 fix: don't use container name in label discovery 2025-10-12 11:29:31 +03:00
Stavros 1b87ed9b99 feat: add config dumps to trace log level 2025-10-12 11:29:31 +03:00
StavrosandGitHub dc67be2ba0 fix: remove html suffix from docs link 2025-10-11 23:18:20 +03:00
Stavros 9b76a84ee2 feat: add trace logging 2025-10-11 15:27:01 +03:00
Stavros ed20d2cf51 fix: use correct path for data directory in distroless 2025-10-11 15:18:37 +03:00
Stavros fc7e395e66 feat: sort configured providers based on name length 2025-10-10 17:16:22 +03:00
Stavros b940d681c3 feat: use recovery gin middleware in engine 2025-10-10 16:42:19 +03:00
Stavros a1ec4a69cf fix: remove spaces before checking oauth name and username 2025-10-10 16:28:52 +03:00
Stavros 5a4855c12c refactor: move docker connection check to start up 2025-10-10 15:45:04 +03:00
Stavros 05d4dbd68e fix: ensure data directory exists on docker image 2025-10-10 15:34:09 +03:00
Stavros ae8347fd28 fix: use docker meta flavors for handling latest, prefix and suffix 2025-10-08 23:11:25 +03:00
Stavros 5b7bda3378 chore: use bun frozen lockfile for builds 2025-10-08 18:56:42 +03:00
Stavros e878516130 refactor: don't add tinyauth suffix to title 2025-10-08 16:41:41 +03:00
Stavros e5f1df03c4 feat: add tinyauth to container path 2025-10-08 16:40:22 +03:00
Stavros c77da30d87 refactor: set gin mode using env 2025-10-08 16:24:14 +03:00
Stavros 287c6f975f fix: do not allow request if docker labels check fail 2025-10-08 15:44:34 +03:00
Stavros 0255e954f7 refactor: use non-google specific meta tags 2025-10-08 15:42:52 +03:00
Stavros c5d70d7c93 feat: set page title based on configured title 2025-10-08 15:35:54 +03:00
Stavros adffb4ac0a fix: names in oauth broker 2025-10-08 15:15:30 +03:00
Stavros bbf8112995 refactor: touch up loggin in healthcheck command 2025-10-07 15:41:39 +03:00
Stavros 103285855e feat: add distroless to release workflow 2025-10-07 15:34:08 +03:00
Stavros 2cc6b6bdbb fix: tinyauth path in dockerfiles 2025-10-07 15:25:17 +03:00
Stavros adb1a9bee5 fix: fix typo 2025-10-07 15:15:21 +03:00
Stavros 1ee0cee171 feat: distroless image 2025-10-07 15:03:53 +03:00
Stavros 720f387908 refactor: rework cli healthcheck logic 2025-10-07 14:30:09 +03:00
Stavros a629430a88 chore: update readme 2025-10-06 21:46:15 +03:00
Stavros f0a48cc91c feat: add health check command 2025-10-06 21:45:23 +03:00
2f8fa39a9b refactor: make cli modular (#390)
* refactor: make cli modular

* chore: apply suggestion from @Rycochet

Co-authored-by: Ryc O'Chet <Rycochet@users.noreply.github.com>

* chore: apply review suggestions

* refactor: no need to handle user escaping in verify cmd

---------

Co-authored-by: Ryc O'Chet <Rycochet@users.noreply.github.com>
2025-10-06 21:27:51 +03:00
StavrosandGitHub 30fe695371 New Crowdin updates (#278)
* New translations en.json (French)

* New translations en.json (Russian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Swedish)

* New translations en.json (Swedish)

* New translations en.json (Russian)

* New translations en.json (Czech)

* New translations en.json (German)

* New translations en.json (German)

* 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 (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* 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 (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (French)

* 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 (English)

* New translations en.json (Vietnamese)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Greek)

* New translations en.json (Polish)

* New translations en.json (Arabic)

* New translations en.json (French)

* New translations en.json (French)

* New translations en.json (Chinese Simplified)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Russian)

* New translations en.json (Russian)
2025-10-05 23:19:59 +03:00
Stavros 2f1cb8dfe3 refactor: disable indexing completely in frontend 2025-10-05 23:14:24 +03:00
Stavros dad0718091 fix: disable search engine indexing 2025-10-05 16:41:15 +03:00
Stavros d4069900bc feat: autofocus totp form 2025-10-03 16:36:10 +03:00
Stavros 085f6257c5 fix: fix oauth group provider check 2025-09-25 22:35:44 +03:00
Stavros c307f7eb2e fix: handle 201 status for heartbeat 2025-09-22 19:56:59 +03:00
Stavros 5dd8526833 fix: fix key normalization function handing more cases than it needs to 2025-09-22 19:29:55 +03:00
Stavros e8558b89b4 fix: set gin mode correctly 2025-09-22 16:15:55 +03:00
Stavros f8047a6c2e feat: add option to disable resources server 2025-09-22 15:52:43 +03:00
Stavros c9867ccb76 chore: fix typo 2025-09-20 11:08:57 +03:00
Stavros 866933b3d6 fix: fix version handling in docker and cd 2025-09-19 15:38:32 +03:00
Stavros d70cbea546 chore: handle trusted proxies config error 2025-09-19 14:53:10 +03:00
StavrosandGitHub 50105e4e9d feat: version info analytics (#363)
* feat: version info analytics

* refactor: don't create new client everytime
2025-09-19 14:44:22 +03:00
Stavros b62b2932fe fix: only set trusted proxies if config option is not empty 2025-09-16 15:14:42 +03:00
StavrosandGitHub 5c866bad1a feat: multiple oauth providers (#355)
* feat: add flag decoder (candidate)

* refactor: finalize flags decoder

* feat: add env decoder

* feat: add oauth config parsing logic

* feat: implement backend logic for multiple oauth providers

* feat: implement multiple oauth providers in the frontend

* feat: add some default icons

* chore: add credits for parser

* feat: style oauth auto redirect screen

* fix: bot suggestions

* refactor: rework decoders using simpler and more efficient pattern

* refactor: rework oauth name database migration
2025-09-16 13:28:28 +03:00
Stavros 2d78e6b598 feat: add cookie domain back to context controller 2025-09-10 13:47:48 +03:00
Stavros e03eaf4f08 feat: add psl check in cookie domain 2025-09-10 13:43:08 +03:00
Stavros 74cb8067a8 tests: add util tests 2025-09-03 17:52:51 +03:00
Stavros ba46493a7b tests: add proxy controller tests 2025-09-03 15:30:24 +03:00
Stavros bb0373758a tests: add resources controller test 2025-09-03 14:58:24 +03:00
Stavros f8836fc964 tests: test user context handler with no context 2025-09-03 13:36:11 +03:00
Stavros 53856e0a70 tests: test invalid json in user controller 2025-09-03 13:31:45 +03:00
Stavros 9b7dcfd86f tests: add user controller tests 2025-09-03 13:28:27 +03:00