gitextract_u5ucyfy8/ ├── .coderabbit.yaml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── nightly.yml │ ├── release.yml │ ├── sponsors.yml │ └── stale.yml ├── .gitignore ├── .gitmodules ├── .vscode/ │ └── launch.json ├── .zed/ │ └── debug.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Dockerfile.dev ├── Dockerfile.distroless ├── FUNDING.yml ├── LICENSE ├── Makefile ├── README.md ├── SECURITY.md ├── air.toml ├── assets/ │ ├── discohook.json │ └── logo.xcf ├── cmd/ │ └── tinyauth/ │ ├── create_oidc_client.go │ ├── create_user.go │ ├── generate_totp.go │ ├── healthcheck.go │ ├── tinyauth.go │ ├── verify_user.go │ └── version.go ├── codecov.yml ├── crowdin.yml ├── docker-compose.dev.yml ├── docker-compose.example.yml ├── frontend/ │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc │ ├── Dockerfile.dev │ ├── components.json │ ├── eslint.config.js │ ├── index.html │ ├── package.json │ ├── public/ │ │ └── site.webmanifest │ ├── src/ │ │ ├── App.tsx │ │ ├── components/ │ │ │ ├── auth/ │ │ │ │ ├── login-form.tsx │ │ │ │ └── totp-form.tsx │ │ │ ├── domain-warning/ │ │ │ │ └── domain-warning.tsx │ │ │ ├── icons/ │ │ │ │ ├── github.tsx │ │ │ │ ├── google.tsx │ │ │ │ ├── microsoft.tsx │ │ │ │ ├── oauth.tsx │ │ │ │ ├── pocket-id.tsx │ │ │ │ └── tailscale.tsx │ │ │ ├── language/ │ │ │ │ └── language.tsx │ │ │ ├── layout/ │ │ │ │ └── layout.tsx │ │ │ ├── providers/ │ │ │ │ └── theme-provider.tsx │ │ │ ├── theme-toggle/ │ │ │ │ └── theme-toggle.tsx │ │ │ └── ui/ │ │ │ ├── button.tsx │ │ │ ├── card.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── input-otp.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── oauth-button.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sonner.tsx │ │ │ └── tooltip.tsx │ │ ├── context/ │ │ │ ├── app-context.tsx │ │ │ └── user-context.tsx │ │ ├── index.css │ │ ├── lib/ │ │ │ ├── hooks/ │ │ │ │ ├── oidc.ts │ │ │ │ └── redirect-uri.ts │ │ │ ├── i18n/ │ │ │ │ ├── i18n.ts │ │ │ │ ├── locales/ │ │ │ │ │ ├── af-ZA.json │ │ │ │ │ ├── ar-SA.json │ │ │ │ │ ├── ca-ES.json │ │ │ │ │ ├── cs-CZ.json │ │ │ │ │ ├── da-DK.json │ │ │ │ │ ├── de-DE.json │ │ │ │ │ ├── el-GR.json │ │ │ │ │ ├── en-US.json │ │ │ │ │ ├── en.json │ │ │ │ │ ├── es-ES.json │ │ │ │ │ ├── fi-FI.json │ │ │ │ │ ├── fr-FR.json │ │ │ │ │ ├── he-IL.json │ │ │ │ │ ├── hu-HU.json │ │ │ │ │ ├── it-IT.json │ │ │ │ │ ├── ja-JP.json │ │ │ │ │ ├── ko-KR.json │ │ │ │ │ ├── nl-NL.json │ │ │ │ │ ├── no-NO.json │ │ │ │ │ ├── pl-PL.json │ │ │ │ │ ├── pt-BR.json │ │ │ │ │ ├── pt-PT.json │ │ │ │ │ ├── ro-RO.json │ │ │ │ │ ├── ru-RU.json │ │ │ │ │ ├── sr-SP.json │ │ │ │ │ ├── sv-SE.json │ │ │ │ │ ├── tr-TR.json │ │ │ │ │ ├── uk-UA.json │ │ │ │ │ ├── vi-VN.json │ │ │ │ │ ├── zh-CN.json │ │ │ │ │ └── zh-TW.json │ │ │ │ └── locales.ts │ │ │ └── utils.ts │ │ ├── main.tsx │ │ ├── pages/ │ │ │ ├── authorize-page.tsx │ │ │ ├── continue-page.tsx │ │ │ ├── error-page.tsx │ │ │ ├── forgot-password-page.tsx │ │ │ ├── login-page.tsx │ │ │ ├── logout-page.tsx │ │ │ ├── not-found-page.tsx │ │ │ ├── totp-page.tsx │ │ │ └── unauthorized-page.tsx │ │ ├── schemas/ │ │ │ ├── app-context-schema.ts │ │ │ ├── login-schema.ts │ │ │ ├── oidc-schemas.ts │ │ │ ├── totp-schema.ts │ │ │ └── user-context-schema.ts │ │ └── vite-env.d.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── gen/ │ ├── gen.go │ ├── gen_env.go │ └── gen_md.go ├── go.mod ├── go.sum ├── internal/ │ ├── assets/ │ │ ├── assets.go │ │ └── migrations/ │ │ ├── 000001_init_sqlite.down.sql │ │ ├── 000001_init_sqlite.up.sql │ │ ├── 000002_oauth_name.down.sql │ │ ├── 000002_oauth_name.up.sql │ │ ├── 000003_oauth_sub.down.sql │ │ ├── 000003_oauth_sub.up.sql │ │ ├── 000004_created_at.down.sql │ │ ├── 000004_created_at.up.sql │ │ ├── 000005_oidc_session.down.sql │ │ ├── 000005_oidc_session.up.sql │ │ ├── 000006_oidc_nonce.down.sql │ │ └── 000006_oidc_nonce.up.sql │ ├── bootstrap/ │ │ ├── app_bootstrap.go │ │ ├── db_bootstrap.go │ │ ├── router_bootstrap.go │ │ └── service_bootstrap.go │ ├── config/ │ │ └── config.go │ ├── controller/ │ │ ├── context_controller.go │ │ ├── context_controller_test.go │ │ ├── health_controller.go │ │ ├── oauth_controller.go │ │ ├── oidc_controller.go │ │ ├── oidc_controller_test.go │ │ ├── proxy_controller.go │ │ ├── proxy_controller_test.go │ │ ├── resources_controller.go │ │ ├── resources_controller_test.go │ │ ├── user_controller.go │ │ ├── user_controller_test.go │ │ └── well_known_controller.go │ ├── middleware/ │ │ ├── context_middleware.go │ │ ├── ui_middleware.go │ │ └── zerolog_middleware.go │ ├── repository/ │ │ ├── db.go │ │ ├── models.go │ │ ├── oidc_queries.sql.go │ │ └── session_queries.sql.go │ ├── service/ │ │ ├── access_controls_service.go │ │ ├── auth_service.go │ │ ├── docker_service.go │ │ ├── generic_oauth_service.go │ │ ├── github_oauth_service.go │ │ ├── google_oauth_service.go │ │ ├── ldap_service.go │ │ ├── oauth_broker_service.go │ │ └── oidc_service.go │ └── utils/ │ ├── app_utils.go │ ├── app_utils_test.go │ ├── decoders/ │ │ ├── label_decoder.go │ │ └── label_decoder_test.go │ ├── fs_utils.go │ ├── fs_utils_test.go │ ├── label_utils.go │ ├── label_utils_test.go │ ├── loaders/ │ │ ├── loader_env.go │ │ ├── loader_file.go │ │ └── loader_flag.go │ ├── security_utils.go │ ├── security_utils_test.go │ ├── string_utils.go │ ├── string_utils_test.go │ ├── tlog/ │ │ ├── log_audit.go │ │ ├── log_wrapper.go │ │ └── log_wrapper_test.go │ ├── user_utils.go │ └── user_utils_test.go ├── patches/ │ └── nested_maps.diff ├── sql/ │ ├── oidc_queries.sql │ ├── oidc_schemas.sql │ ├── session_queries.sql │ └── session_schemas.sql └── sqlc.yml