Tinyauth

設定スキーマ

完全なconfig.yamlスキーマリファレンス

この文書は現在 tinyauthconfig.yaml 構造をtop-levelグループ基準でまとめたリファレンスです。

Note

frontendfrontend.html_variablesはstandalone専用の設定です。 @tinyrack/tinyauth-standaloneのみこの値を解釈し、 @tinyrack/tinyauth-serverの直接構成では使用しません。

server

アイテムタイプデフォルト環境変数説明
public_originstring (URL)http://localhost:8080PUBLIC_ORIGIN公開 URL。リダイレクト、メールリンク、 OIDC issuer metadataの基準になります。
listen_portnumber8080LISTEN_PORTstandalone サーバーがバインドするポートです。
trust_proxyboolean | string | string[] | numberfalseTRUST_PROXYリバースプロキシヘッダの信頼設定です。

tokens

アイテムタイプデフォルト環境変数説明
access_token_ttlinteger (最小60)3600ACCESS_TOKEN_TTLアクセストークンの寿命(秒)
refresh_token_ttlinteger (最小3600)2592000REFRESH_TOKEN_TTLリフレッシュトークン寿命(秒)
key_rotation.enabledbooleantrueJWT_KEY_ROTATION_ENABLEDJWT キー自動循環を有効にする
key_rotation.interval_daysinteger (最小1)30JWT_KEY_ROTATION_DAYSキー循環サイクル(日)
key_rotation.overlap_daysinteger (最小1)7JWT_KEY_OVERLAP_DAYS前のキー保持期間(日)

i18n

アイテムタイプデフォルト環境変数説明
supported_languagesLocale[]['en', 'ko', 'ja']-サポート言語リスト
default_language'auto' | Locale'auto'DEFAULT_LANGUAGE基本言語
fallback_languageLocale'en'FALLBACK_LANGUAGE代替言語

branding

アイテムタイプデフォルト環境変数説明
background_urlstring (URL)基本的な背景画像BACKGROUND_URL背景画像 URL
icon_urlstring (URL)-ICON_URLロゴ画像 URL
titleRecord<string, string>基本多言語タイトル-言語別のタイトル
subtitleRecord<string, string>基本多言語サブタイトル-言語別のサブタイトル

registration

アイテムタイプデフォルト環境変数説明
enabledbooleanfalseREGISTRATION_ENABLED自己会員登録を有効にするかどうか。パスワード登録と最初 OAuth 購読はすべてこの値に従います。
allowed_email_patternsstring[][]-登録を許可する電子メールパターン。 enabled: true場合にのみ適用され、空の配列であれば、すべての電子メール購読を許可します。
email_verification_requiredbooleantrueEMAIL_VERIFICATION_REQUIREDパスワードの登録後に電子メール認証が必要かどうか
signup_noticeRecord<string, string>{}-暗示的規約同意案内フレーズ(HTML 可能)

account_deletion

アイテムタイプデフォルト環境変数説明
enabledbooleanfalseACCOUNT_DELETION_ENABLEDユーザーの直接退会を許可するかどうか
retentionDurationString'30d'ACCOUNT_DELETION_RETENTION退会依頼から実際の永久削除までの猶予期間

logging

アイテムタイプデフォルト環境変数説明
level'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent''info'LOG_LEVELログレベル
format'json' | 'pretty''json'LOG_FORMATログ出力形式

security

アイテムタイプデフォルト環境変数説明
session_secretstring (16文字以上)必須SESSION_SECRETセッションクッキー署名キー
hash_secretstring (base64url 32バイト)必須HASH_SECRETパスワード、クライアントシークレット、ワンタイムトークンハッシュ用のルートシークレット
pbkdf2_iterationsinteger (最小1)600000PBKDF2_ITERATIONSPBKDF2 繰り返し回数

database

database.typeによってサブフィールドが異なります。

SQLite (type: 'sqlite')

アイテムタイプデフォルト環境変数説明
type'sqlite'-DATABASE_TYPEデータベースタイプ
pathstring/opt/tinyauth/database.dbDATABASE_PATHデータベースファイルパス
testbooleanfalseDATABASE_TESTテストモードかどうか

PostgreSQL (type: 'postgres')

アイテムタイプデフォルト環境変数説明
type'postgres'-DATABASE_TYPEデータベースタイプ
hoststring'localhost'DATABASE_HOSTホスト
portnumber5432DATABASE_PORTポート
userstring'postgres'DATABASE_USERユーザー
passwordstring'postgres'DATABASE_PASSWORDパスワード
namestring'tinyauth'DATABASE_NAMEデータベース名

auth

auth.password

アイテムタイプデフォルト環境変数説明
enabledbooleantruePASSWORD_AUTH_ENABLEDパスワード認証の有効化
two_factor.enrollment_requiredbooleanfalsePASSWORD_2FA_ENROLLMENT_REQUIREDパスワードユーザーの2次認証登録必須
totp.enabledbooleanfalsePASSWORD_TOTP_ENABLEDTOTP 使用するかどうか
totp.issuerstring'Tinyrack'PASSWORD_TOTP_ISSUER認証アプリの表示名
policy.min_lengthnumber8PASSWORD_MIN_LENGTH最小長
policy.max_lengthnumber128PASSWORD_MAX_LENGTH最大長

auth.passkey

アイテムタイプデフォルト環境変数説明
enabledbooleanfalsePASSKEY_ENABLEDパスキー認証の有効化
rp_idstringserver.public_originから抽出PASSKEY_RP_IDWebAuthn RP ID(ドメインのみ)
originsstring[][server.public_origin]-許可 WebAuthn origin リスト

email

emailは選択設定で、メール送信機能を使用する場合にのみ必要です。

アイテムタイプデフォルト環境変数説明
transport'smtp' | 'test'-EMAIL_TRANSPORTメール送信方法
fromstring-EMAIL_FROM送信者アドレス

SMTP (transport: 'smtp')

アイテムタイプデフォルト環境変数説明
hoststring'localhost'EMAIL_HOSTSMTP サーバーホスト
portnumber465EMAIL_PORTSMTP ポート
securebooleantrueEMAIL_SECURESSL/TLS 使用するかどうか
userstring必須EMAIL_USERSMTP ユーザー
passwordstring必須EMAIL_PASSWORDSMTP パスワード

identity_providers

配列の形で複数のプロバイダを設定できます。使用しないときはセクションを省略するか []で置けばいいです。詳しくは 第三者ログインの概要を参考にしてください。

アイテムタイプ説明
idstring一意の識別子
type'github' | 'google' | 'apple' | 'generic_oauth'プロバイダの種類
enabledboolean有効かどうか
display_namestring表示名
icon_urlstringアイコン URL
client_idstringOAuth クライアントID
client_secretstringOAuth クライアントシークレット
authorization_urlstring認証エンドポイント
token_urlstringトークンエンドポイント
userinfo_urlstring | nullユーザー情報エンドポイント
email_urlstring電子メール照会エンドポイント
scopesstring[]リクエストスコープリスト
email_conflict_strategy'auto_link' | 'require_link'電子メールの競合処理方法

clients

アイテムタイプ説明
idstring内部一意識別子
namestring表示名
logo_uristringロゴ URL
client_idstringパブリッククライアントID
client_secretstringクライアントシークレット
redirect_urisstring[]許可リダイレクト URL
response_typesstring[]許容応答タイプ
grant_typesstring[]許可権限の種類
scopestring許容スコープ(スペース区切り)

users

アイテムタイプ説明
substringユーザー固有の識別子
emailstringメールアドレス
passwordstring初期パスワード
role'user' | 'admin'ユーザーロール

terms

配列の形で複数の条件を設定できます。

アイテムタイプ説明
idstring一意の識別子(小文字、 -, _)
requiredboolean必須同意かどうか
consent_mode'explicit' | 'implicit'同意収集方法
versionstring利用規約バージョン
contentRecord<string, { title, type, content }>言語別の規約内容

contentの各項目から typelink または textしか使えません。

scheduler

アイテムタイプデフォルト環境変数説明
enabledbooleantrueSCHEDULER_ENABLED組み込みスケジューラの有効化
mode'croner' | 'database''croner'SCHEDULER_MODEスケジューラバックエンド
cleanup_cronstring'0 2 * * *'SCHEDULER_CLEANUP_CRONクリーンアップジョブcron式
poll_interval_msnumber5000SCHEDULER_POLL_INTERVAL_MSdatabase モード polling 周期 (ms)
lock_ttl_msnumber60000SCHEDULER_LOCK_TTL_MSdatabase モード lease TTL(ms)
background_retry_delay_msnumber1000SCHEDULER_BACKGROUND_RETRY_DELAY_MSdatabase モード background job 再試行待機時間 (ms)
background_max_attemptsinteger3SCHEDULER_BACKGROUND_MAX_ATTEMPTSdatabase モード background job 最大試行回数
background_retention_msnumber604800000SCHEDULER_BACKGROUND_RETENTION_MS完了した背景ジョブ(succeeded/failed)保存期間(ms)。 pending/running ジョブは削除しない
instance_idstring自動生成SCHEDULER_INSTANCE_IDdatabase モード lease 所有者識別子

cleanup

アイテムタイプデフォルト環境変数説明
revoked_tokens.enabledbooleantrueCLEANUP_REVOKED_TOKENS_ENABLEDキャンセルされたトークンのクリーンアップ
revoked_tokens.retentionDurationString'0'CLEANUP_REVOKED_TOKENS_RETENTION保存期間
oauth_codes.enabledbooleantrueCLEANUP_OAUTH_CODES_ENABLED認証コードの整理
oauth_codes.consumed_retentionDurationString'24h'CLEANUP_OAUTH_CODES_RETENTION使用されたコードの保存期間
email_verifications.enabledbooleantrueCLEANUP_EMAIL_VERIFICATIONS_ENABLED電子メール認証トークンのクリーンアップ
email_verifications.retentionDurationString'0'CLEANUP_EMAIL_VERIFICATIONS_RETENTION保存期間
password_resets.enabledbooleantrueCLEANUP_PASSWORD_RESETS_ENABLEDパスワードリセットトークンのクリーンアップ
password_resets.retentionDurationString'0'CLEANUP_PASSWORD_RESETS_RETENTION保存期間
pending_oauth_registrations.enabledbooleantrueCLEANUP_PENDING_OAUTH_REGISTRATIONS_ENABLED中断 OAuth サインアップの整理
pending_oauth_registrations.retentionDurationString'0'CLEANUP_PENDING_OAUTH_REGISTRATIONS_RETENTION保存期間

openapi

アイテムタイプデフォルト環境変数説明
enabledbooleantrue-ライブOpenAPIルート GET /api/docs, GET /api/docs/json 露出かどうか
titlestring'TinyAuth API'-OpenAPIドキュメントのタイトル
descriptionstring'OpenID Connect Provider API'-OpenAPI ドキュメントの説明
ui_titlestring'TinyAuth API Reference'-ライブスカラー API リファレンスUIのブラウザページタイトル

frontend (standalone only)

アイテムタイプデフォルト環境変数説明
enabledbooleantrueFRONTEND_ENABLEDフロントエンドサービングを有効にするかどうか
mode'proxy' | 'static''static'FRONTEND_MODEproxyはアップストリーム配信、 static銀ディスクサービング
pathstringランタイムのデフォルトFRONTEND_PATHフロントエンドパス
html_variablesRecord<string, string>{}-HTML テンプレート置換変数
Note

DurationString フォーマット: "0" (即時)、 "30s" (秒), "30m" (分), "24h" (時間), "7d" (日), "1y" (年)