Commit Graph
100 Commits
Author SHA1 Message Date
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
Stavros 7afea8b3fc tests: add tests for context controller 2025-09-03 12:45:23 +03:00
Stavros f5ac7eff99 refactor: mode label decoder to separate package 2025-09-03 12:23:21 +03:00
Stavros b024d5ffda feat: allow for dash substitute in ip filters for environments like kubernetes 2025-09-03 12:16:06 +03:00
Stavros 773cd6d171 feat: add trusted proxies config value 2025-09-03 12:14:13 +03:00
StavrosandGitHub f3eb7f69b4 Revert "feat: header based acls (#337)" (#340)
This reverts commit f0d2da281a.
2025-09-03 12:12:18 +03:00
StavrosandGitHub f0d2da281a feat: header based acls (#337)
* feat: add header decoder

* feat: allow for dash substitute over slash for environments like kubernetes

* feat: use decoded headers in proxy controller

* refactor: simplify decode header to node function

* refactor: use stdlib prefix check in header decoder

* fix: lowercase key and filter before comparing
2025-09-02 19:06:52 +03:00
Stavros 9ce16c9652 fix: expire csrf cookie if it's invalid 2025-09-02 18:38:11 +03:00
StavrosandGitHub ad4fc7ef5f refactor: don't export non-needed fields (#336)
* refactor: don't export non-needed fields

* feat: coderabbit suggestions

* fix: avoid queries panic
2025-09-02 01:27:55 +03:00
Stavros 5184c96e85 feat: add mutex to ldap service 2025-09-02 00:08:19 +03:00
StavrosandGitHub b9e35716ac feat: invalid domain warning (#332)
* wip

* refactor: update domain warning layout

* i18n: add domain warning translations

* refactor: rework hooks usage

* feat: clear timeouts

* fix: use useeffect to cleanup timeout

* refactor: rework redirects and history storage

* refactor: rename domain to root domain
2025-09-01 18:22:42 +03:00
StavrosandGitHub c7c3de4f78 refactor: unify labels (#329)
* refactor: unify labels

* feat: implement path block and user block

Fixes #313

* fix: fix oauth group check logic

* chore: fix typo
2025-08-29 17:04:34 +03:00
StavrosandGitHub 03d06cb0a7 feat: add sqlite database for storing sessions (#326)
* feat: add sqlite database for storing sessions

* refactor: use db instance instead of service in auth service

* fix: coderabbit suggestions
2025-08-29 12:35:11 +03:00
StavrosandGitHub 504a3b87b4 refactor: rework file structure (#325)
* wip: add middlewares

* refactor: use context fom middleware in handlers

* refactor: use controller approach in handlers

* refactor: move oauth providers into services (non-working)

* feat: create oauth broker service

* refactor: use a boostrap service to bootstrap the app

* refactor: split utils into smaller files

* refactor: use more clear name for frontend assets

* feat: allow customizability of resources dir

* fix: fix typo in ui middleware

* fix: validate resource file paths in ui middleware

* refactor: move resource handling to a controller

* feat: add some logging

* fix: configure middlewares before groups

* fix: use correct api path in login mutation

* fix: coderabbit suggestions

* fix: further coderabbit suggestions
2025-08-26 15:05:03 +03:00
StavrosandGitHub ef25962a93 refactor: use whoami router name in development compose 2025-08-19 12:07:43 +03:00
Stavros 4dacb46a8e fix: fix typo in codecov config 2025-07-17 15:15:47 +03:00
Stavros 5f7f88421e refactor: move user logging to oauth callback handler 2025-07-17 15:07:05 +03:00
Stavros bc941cb248 refactor: make reconnect operation return connection 2025-07-17 15:06:06 +03:00
StavrosandGitHub 00d15de44f New Crowdin updates (#269)
* New translations en.json (Serbian (Cyrillic))

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

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

* New translations en.json (Greek)

* New translations en.json (Chinese Traditional)
2025-07-17 13:58:38 +03:00
Stavros 6867667de6 chore: format server package 2025-07-17 00:46:28 +03:00
Stavros 19eb8f3064 refactor: handle oauth groups response as an any array of any 2025-07-17 00:31:24 +03:00
Stavros 1a13936693 refactor: log parsed user in generic provider 2025-07-16 01:38:54 +03:00
Stavros af26d705cd fix: add auto complete information to auth forms 2025-07-16 01:29:13 +03:00
Stavros 4a87af4463 refactor: make ldap user not found errors be warnings 2025-07-15 13:18:37 +03:00
Stavros 88d918d608 fix: don't fail app if LDAP is not configured 2025-07-15 02:24:09 +03:00
Stavros 5854d973ea i18n: internationalize required error 2025-07-15 02:15:17 +03:00
Stavros f25ab72747 refactor: check cookie prior to basiv auth in context hook 2025-07-15 02:10:16 +03:00
Stavros 2233557990 tests: move handlers test to handlers package 2025-07-15 01:38:01 +03:00
Stavros d3bec635f8 fix: make tinyauth not "eat" the authorization header 2025-07-15 01:34:25 +03:00
Stavros 6519644fc1 fix: handle type string for oauth groups 2025-07-15 00:17:41 +03:00
Stavros 736f65b7b2 refactor: close connection before trying to reconnect 2025-07-14 20:10:15 +03:00
Stavros 63d39b5500 feat: try to reconnect to ldap server if heartbeat fails 2025-07-14 20:02:16 +03:00
StavrosandGitHub b735ab6f39 New Crowdin updates (#260)
* 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 (Polish)

* New translations en.json (Greek)

* New translations en.json (French)

* New translations en.json (Polish)
2025-07-12 16:23:13 +03:00
Stavros 232c50eaef chore: stop codeconv from failing status checks 2025-07-12 16:13:51 +03:00
Stavros 52b12abeb2 refactor: make heartbeat log message only appear in debug logs 2025-07-12 13:31:53 +03:00
Stavros 48b4d78a7c refactor: split handlers into smaller purpose specific files 2025-07-12 13:23:25 +03:00
Stavros 8ebed0ac9a chore: remove meaningless comments 2025-07-12 13:17:06 +03:00
Stavros e742603c15 fix: add logging to user parse failure 2025-07-12 11:49:37 +03:00
Stavros 3215bb6baa refactor: simplify ldap heartbeat 2025-07-12 00:21:22 +03:00
Stavros a11aba72d8 feat: add heartbeat to keep ldap connection alive 2025-07-11 23:16:09 +03:00
Stavros 10d1b48505 chore: add dlv for debugging in dev workflow 2025-07-11 17:15:32 +03:00
Stavros f73eb9571f fix: fix password reset message translations 2025-07-11 16:16:49 +03:00