Commit Graph
100 Commits
Author SHA1 Message Date
Stavros 2737a25227 fix: don't point to nil local users in bootstrap app 2026-05-23 20:24:54 +03:00
StavrosandGitHub 55bef72639 fix: ensure domain defined in acls is included in host rules (#884) 2026-05-23 17:13:41 +03:00
Stavros ae17bd3b66 fix: do not log user context not found errors in proxy controller 2026-05-23 16:43:03 +03:00
StavrosandGitHub c9e90547d4 chore: change project license to AGPL (#876) 2026-05-21 12:16:57 +03:00
Stavros 3194f4b987 chore: remove stale error from tailscale service 2026-05-20 23:04:38 +03:00
Stavros 9b50670925 fix: handle panics in tailscale service 2026-05-20 23:01:14 +03:00
StavrosandGitHub 1166a15aa7 feat: tailscale integration (#847) 2026-05-20 20:10:38 +03:00
StavrosandGitHub c855f9b8ac feat: add support for deny by default access controls (#852) 2026-05-19 18:07:55 +03:00
Stavros 8b4ba23328 chore: remove stale bot 2026-05-18 14:32:50 +03:00
Stavros 8932f2ad46 feat: ensure public key pairs with private key in oidc service 2026-05-16 20:43:50 +03:00
Stavros 482ba9d99f fix: use yml instead of yaml files for issue templates 2026-05-16 20:27:48 +03:00
Stavros 1bcd1bb59a fix: fix feature request template and allow blank issues 2026-05-16 20:24:11 +03:00
Stavros 5349f21212 fix: use loaded public key in oidc service, fixes #860 2026-05-16 17:09:21 +03:00
Stavros ca06099466 tests: fix tests for proxy controller 2026-05-15 18:43:18 +03:00
Stavros d4b4245017 chore: revert 4c741a5 and use 403 for acl errors 2026-05-15 18:39:12 +03:00
Stavros 4c741a5990 fix: use 401 errors instead of 403 for nginx responses 2026-05-15 18:12:15 +03:00
StavrosandGitHub def539a40f refactor: replace bun with pnpm (#870) 2026-05-15 14:43:51 +03:00
Stavros 086e3af4e2 chore: add deepsec to gitignore 2026-05-13 19:11:39 +03:00
StavrosandGitHub 4f7335ed73 refactor: rework app logging, dependency injection and cancellation (#844)
* feat: add new logger

* refactor: use one struct for context handling and cancellation

* refactor: rework logging and config in controllers

* refactor: rework logging and config in middlewares

* refactor: rework logging and cancellation in services

* refactor: rework cli logging

* fix: improve logging in routines

* feat: use sync groups for better cancellation

* refactor: simplify middleware, controller and service init

* tests: fix controller tests

* tests: use require instead of assert where previous step is required

* tests: fix middleware tests

* tests: fix service tests

* tests: fix context tests

* fix: fix typos

* feat: add option to enable or disable concurrent listeners

* fix: assign public key correctly in oidc server

* tests: fix don't try to test logger with char size

* fix: coderabbit comments

* tests: use filepath join instead of path join

* fix: ensure unix socket shutdown doesn't run twice

* chore: remove temp lint file
2026-05-10 16:10:36 +03:00
StavrosandGitHub 1382ab41e7 refactor: rework user context handling throughout tinyauth (#829)
* wip

* fix: fix util imports

* fix: fix bootstrap import issues

* fix: fix cli imports

* fix: context controller

* fix: use new context in user controller

* fix: fix imports and context in proxy controller

* fix: fix oauth and oidc controller imports and context

* feat: finalize context functionality

* refactor: simplify acls checking logic by passing the entire acl struct

* chore: rename get basic auth to encode basic auth for clarity

* fix: fix controller tests

* tests: fix service tests

* tests: fix utils tests

* tests: move to testify for testing in utils

* fix: fix config reference generator

* tests: add tests for context parsing

* tests: add tests for context middleware

* tests: remove error wrapper from context tests

* tests: fix log wrapper tests

* fix: fix verion setting in cd and dockerfiles

* fix: review comments batch 1

* fix: review comments batch 2

* fix: review comments batch 3

* fix: delete totp pending session cookie on totp success

* tests: fix user controller tests

* fix: don't audit login too early

* fix: own comments
2026-05-07 15:41:07 +03:00
Stavros 5e822d99e1 chore: fix typos in oidc service 2026-04-29 16:08:21 +03:00
Stavros 373ee8806e chore: prefer errors.is instead of comparison 2026-04-29 16:04:27 +03:00
Stavros a14d64c8ba chore: remove exp slices package and use stdlib 2026-04-29 15:56:35 +03:00
StavrosandGitHub d51e3efe32 fix: use pinned step versions and set workflow permissions (#825)
* fix: use pinned step versions and set workflow permissions

* fix: use contents write in sponsors list action
2026-04-28 15:52:02 +03:00
Stavros d73cc628fb chore: add openssf baseline badge to readme 2026-04-28 15:46:40 +03:00
Stavros a8737ab0bd fix: use frozen lockfile in makefile bun install 2026-04-28 15:31:07 +03:00
Stavros 11793c9869 fix: use frozen lockfile in all bun installs 2026-04-28 15:30:21 +03:00
StavrosandGitHub c68a022ed0 docs: add ai policy (#821)
* docs: add ai policy

* docs: rework ai policy for more clear rules and expectations

* chore: review comments

* chore: rabbit feedback

* chore: update contributing guide to reference ai policy
2026-04-27 20:44:44 +03:00
StavrosandGitHub c364b8682c feat: preserve login params in forgot password screen (#819) 2026-04-26 18:03:25 +03:00
Stavros 3906e50925 chore: add openssf scorecard to readme 2026-04-21 22:20:00 +03:00
StavrosandGitHub ff81f91366 feat: add scorecard workflow 2026-04-21 22:10:05 +03:00
Stavros 479f165781 fix: fail app on empty app url before parsing 2026-04-16 12:44:24 +03:00
StavrosandGitHub 36c7872a94 New Crowdin updates (#797)
* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Afrikaans)

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

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Korean)

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

* New translations en.json (Hebrew)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Dutch)

* New translations en.json (Chinese Traditional)
2026-04-15 23:24:47 +03:00
Stavros f257d00648 fix: use fmt println to show warning regardless of log level 2026-04-14 13:43:24 +03:00
Stavros 9f77816a1d feat: add organization migration note 2026-04-14 13:26:55 +03:00
Stavros 93d6191139 fix: lighthouse fixes 2026-04-14 13:16:15 +03:00
StavrosandGitHub 6f99e7acff fix: revoke access token on duplicate auth code user (#786)
* fix: revoke access token on duplicate auth code user

* fix: review comments

* tests: fix tests
2026-04-14 12:45:27 +03:00
1117f35496 refactor: use plain input for totp input to fix autofill issues (#790)
* fix(ui): allow pw manager extensions to autofill totp

* chore: small ui fixes

* fix: prevent double totp submissions

---------

Co-authored-by: Scott McKendry <me@scottmckendry.tech>
2026-04-12 19:12:21 +03:00
StavrosandGitHub cc94294ece feat: add x-tinyauth-location to nginx response (#783)
* feat: add x-tinyauth-location to nginx response

Solves #773. Normally you let Nginx handle the login URL creation but with this "hack"
we can set an arbitary header with where Tinyauth wants the user to go to. Later the
Nginx error page can get this header and redirect accordingly.

* tests: fix assert.Equal order
2026-04-11 18:04:56 +03:00
StavrosandGitHub b44dc75f54 fix: return 307 redirects for envoy proxy instead of 401 (#782)
* fix: return 307 redirects for envoy proxy instead of 401

* tests: extend testing for non browser detection in all proxies
2026-04-10 18:11:10 +03:00
Stavros d4dbdc09d0 chore: add org notice to readme 2026-04-10 18:03:06 +03:00
StavrosandGitHub 061d28f5e3 refactor: use tinyauthapp/paerser instead of traefik/paerser (#781)
* refactor: use own paerser library instead of traefik

* chore: remove submodules from release images and workflows
2026-04-10 17:36:13 +03:00
StavrosandGitHub 8b91ce09bd refactor: use zod for oidc params (#771)
* refactor: use zod for oidc params

* fix: review comments

* fix: use min instead of nonempty
2026-04-10 16:05:22 +03:00
StavrosandGitHub 2c1b62f464 feat: preserve oidc params in oauth flow (#772) 2026-04-10 15:58:31 +03:00
StavrosandGitHub 165197e472 feat: add pkce support to oidc server (#766)
* feat: add pkce support to oidc server

* tests: add test cases for pkce

* fix: review comments

* chore: remove debug line

* chore: remove simple logger from testing

* tests: add test for invalid challenge method

* chore: fix typo
2026-04-07 19:04:20 +03:00
Stavros 3373dcc412 test: extend traefik browser tests 2026-04-02 18:46:38 +03:00
Stavros 9d666dc108 fix: skip browser detection for nginx and envoy 2026-04-02 18:24:38 +03:00
Stavros 892097dc4d fix: account for proxy type in browser response 2026-04-02 15:35:55 +03:00
Stavros 8a9ffcf185 chore: add github action updates in dependabot 2026-04-01 19:03:05 +03:00
StavrosandGitHub fc1d4f2082 refactor: use better ignore paths in context middleware (#743) 2026-04-01 17:07:14 +03:00
Stavros 08e6b84615 fix: use int for status in healthcheck cmd 2026-04-01 16:12:11 +03:00
StavrosandGitHub cec0a7327a New translations en.json (Ukrainian) (#740) 2026-04-01 15:43:23 +03:00
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