本文へ移動
hs-sql-agent
2.0.2
ドキュメント 2.0.2
ドキュメント 運用

設定リファレンス

hs-sql-agent 2.0.2 のソースに基づく環境変数とランタイム設定のリファレンスです。

単一インスタンス .env.example から始め、状態共有が必要になるまではプロセスローカル provider を使います。
分散構成 Postgres のコントロールプレーンと Redis-backed cache、limit、policy sync、delivery sync、SQL concurrency を使用します。
組み込み .NET 新規統合では capability ごとの options を設定します。HsSqlAgentServiceOptions は従来の aggregate API 互換用にのみ残されています。

リポジトリに含まれる v2.0.2 .env.example が、既定の Compose deployment で使用する環境変数一覧です。このページでは環境変数名についてそのファイルに従い、コメントと validation が食い違う場合は v2.0.2 の実行コードを基準にします。

アプリケーションとコントロールプレーン

変数.env.example の例/既定値用途
ASPNETCORE_URLShttp://+:8080メイン ASP.NET Core listener
ALLOWED_HOSTS*ASP.NET Core host filtering
ADMIN_DATABASE_PROVIDERSqliteAdmin / control-plane database provider
ADMIN_DATABASE_CONNECTION_STRINGData Source=/app/data/hsqlagent.dbaccount、role、key、audit record、policy などの control-plane state を保存
HMAC_KEYplaceholder発行済み MCP key を保護・検証する HMAC secret。32 バイト以上
MCP_PUBLIC_ENDPOINThttp://localhost:8080/mcp生成される MCP client config に埋め込む絶対 URL

MCP_PUBLIC_ENDPOINT は絶対 HTTP / HTTPS URL である必要があります。本番では内部 container address ではなく、クライアントが実際に到達できる /mcp を含む URL を設定してください。

Admin database topology

単一インスタンスの例では SQLite、分散構成では PostgreSQL を使用します。

ADMIN_DATABASE_PROVIDER=Postgres
ADMIN_DATABASE_CONNECTION_STRING=Host=postgres;Port=5432;Database=hsqlagent;Username=postgres;Password=...

複数の hs-sql-agent インスタンスで同じ ID、key、policy、audit / control-plane record を参照する必要がある場合は、共有 Admin database を使用してください。

Cache

変数単一インスタンス例分散構成例用途
CACHE_PROVIDERMemoryRedisruntime cache provider
CACHE_CONNECTION_STRINGredis:6379Redis 選択時の connection
CACHE_KEY_PREFIXhsqlagent:cache:同じcache key の namespace

プロセスローカル Memory が適切なのは、application instance 間で cache state を共有する必要がない場合だけです。

Bootstrap / 自動プロビジョニング

変数用途
BOOTSTRAP_ENABLEDfalse起動時 provisioning / synchronization を有効化
BOOTSTRAP_DB_IDdefault-db初期 database の安定した bootstrap ID
BOOTSTRAP_DB_NAMEDefault DB管理画面向け database 名
BOOTSTRAP_DB_PROVIDERprovision する provider
BOOTSTRAP_DB_HOSTlocalhostdatabase host
BOOTSTRAP_DB_PORT5432database port
BOOTSTRAP_DB_DATABASEmydbdatabase / catalog / file 値
BOOTSTRAP_DB_USERNAMEmyuserdatabase username
BOOTSTRAP_DB_PASSWORDmypassworddatabase password
BOOTSTRAP_DB_EXTRA_SETTINGSprovider 固有 connection setting
BOOTSTRAP_MCP_KEY_IDdefault-key初期 MCP key の安定した bootstrap ID
BOOTSTRAP_MCP_KEY_NAMEDefault MCP Key管理画面向け key 名
BOOTSTRAP_MCP_KEYplaceholder初期 raw key value
BOOTSTRAP_MCP_ALLOWED_TOOLSbootstrap key の tool restriction

Bootstrap 管理の MCP key は、通常の key lifecycle から編集、ローテーション、失効できないよう意図的に制限されています。変更する場合は元の bootstrap 設定を修正してください。

Admin 認証

変数用途
JWT_KEYplaceholderJWT signing secret。32 バイト以上
JWT_ISSHS-AgentJWT issuer
JWT_AUDHS-Agent-UsersJWT audience
JWT_ACCESS_TOKEN_EXPIRATION_MINUTES10access token lifetime
JWT_REFRESH_TOKEN_EXPIRATION_DAYS1refresh token lifetime
AUTH_LOCKOUT_THRESHOLD5一時 lockout までの sign-in 失敗回数。1 未満は 1 として扱う
AUTH_LOCKOUT_MINUTES15一時 lockout の時間

これらは Admin 認証を制御する設定であり、MCP key 認証の設定ではありません。

Password reset と SMTP

SMTP host または sender が空の場合、password-reset mail は実質的に無効です。

変数用途
PASSWORD_RESET_BASE_URLhttp://localhost:3000/reset-password外部から到達可能な reset page。server が ?token=... を追加
PASSWORD_RESET_EXPIRATION_MINUTES30one-time reset token lifetime
SMTP_HOSTsmtp.example.comSMTP host
SMTP_PORT587SMTP port
SMTP_ENABLE_SSLtruemail sender が使う SSL/STARTTLS behavior
SMTP_USERNAMEexampleSMTP credential
SMTP_PASSWORDexampleSMTP credential
SMTP_FROMno-reply@example.comSMTP provider が受け付ける sender address

OIDC / SSO と MFA

変数用途
OIDC_ENABLEDfalseOIDC authentication を有効化
OIDC_AUTHORITYidentity-provider authority
OIDC_CLIENT_IDOIDC client ID
OIDC_CLIENT_SECRETOIDC client secret
OIDC_REQUIRE_HTTPS_METADATAtrueHTTPS discovery metadata を必須化
OIDC_EMAIL_CLAIMemailemail claim 名
OIDC_NAME_CLAIMnamedisplay-name claim
OIDC_ROLE_CLAIMrolesrole claim
OIDC_EMAIL_VERIFIED_CLAIMemail_verifiedverified-email claim
OIDC_REQUIRE_VERIFIED_EMAILtrue設定済み claim に基づき未検証 email の ID を拒否
OIDC_SCOPE_0..2openid, profile, email既定 scope
OIDC_ROLE_MAPPING_SQL_ADMINSSuperUser外部 role → ローカル role の mapping 例
OIDC_AUTO_PROVISIONtrue外部 ID 解決成功時に user を provision
OIDC_FRONTEND_CALLBACK_URL/sso-callbackfrontend completion route
OIDC_LOGIN_CODE_EXPIRATION_MINUTES2short-lived login code lifetime
OIDC_TOTP_ISSUERHS SQL AgentTOTP issuer label
DATA_PROTECTION_KEY_PATH/app/data/data-protection-keys永続化する ASP.NET Core data-protection key directory

詳しくは OIDC SSO と TOTP MFA を参照してください。

Health、slow query、delivery、audit retention

変数用途
HEALTH_PROBE_ENABLEDfalsebackground DB health probing を有効化
HEALTH_PROBE_INTERVAL_SECONDS60probe cadence
HEALTH_PROBE_TIMEOUT_SECONDS10probe ごとの timeout
HEALTH_PROBE_MAX_CONCURRENCY4同時 probe work の上限
SLOW_QUERY_THRESHOLD_MS1000この duration 以上の Query を slow と記録
ALERT_WEBHOOK_URL任意の署名付き alert destination
ALERT_WEBHOOK_SECRETHMAC/signing secret。URL 有効時は 32 バイト以上
SIEM_WEBHOOK_URL任意の署名付き SIEM destination
SIEM_WEBHOOK_SECRETHMAC/signing secret。URL 有効時は 32 バイト以上
DELIVERY_MAX_ATTEMPTS6outbound delivery の retry 上限
DELIVERY_MAX_CONCURRENCY4outbound delivery の同時実行上限
AUDIT_RETENTION_DAYS90retention period。0 で自動 retention を無効化
AUDIT_RETENTION_MODEArchiveruntime で有効な値は Archive または Purge
AUDIT_ARCHIVE_PATH/app/data/audit-archiveArchive mode の保存先
AUDIT_FALLBACK_PATH/app/data/audit-fallback.jsonlaudit fallback path。起動 validation で必須
AUDIT_RETENTION_RUN_HOUR_UTC2scheduled UTC hour。runtime が 0–23 に clamp

Archive は期限切れ audit row を JSONL archive へ書き出してから Admin database から削除します。Purge は archive を作らず、該当する期限切れ row を削除します。

Global / key 単位の rate limiting

変数単一インスタンス分散構成用途
RATE_LIMITING_PERMIT_LIMIT00global IP permit limit。window も 0 の場合は unlimited
RATE_LIMITING_WINDOW_SECONDS00global IP window
RATE_LIMITER_PROVIDERMemoryRedisshared limiter implementation
RATE_LIMITER_CONNECTION_STRINGredis:6379Redis connection
RATE_LIMITER_FAILURE_MODEFailClosedFailCloseddistributed limiter が利用不能な場合の behavior
RATE_LIMITER_KEY_PREFIXhsqlagent:ratelimit:同じRedis key namespace

MCP key はさらに、key 単位の limit を継承、上書き、または無効化できます。詳しくは MCP キー を参照してください。

Runtime policy synchronization

変数単一インスタンス分散構成用途
SECURITY_POLICY_SYNC_PROVIDERMemoryRedisruntime policy synchronization provider
SECURITY_POLICY_SYNC_CONNECTION_STRINGredis:6379Redis connection
SECURITY_POLICY_SYNC_KEY_PREFIXhsqlagent:security-policy:同じkey namespace
SECURITY_POLICY_SYNC_REFRESH_INTERVAL_SECONDS3030refresh interval

複数の hs-sql-agent instance へ policy change を伝播させる必要がある場合は Redis を選択してください。

Outbound-delivery synchronization

変数単一インスタンス分散構成用途
OUTBOUND_DELIVERY_SYNC_PROVIDERMemoryRedisdelivery signal coordination
OUTBOUND_DELIVERY_SYNC_CONNECTION_STRINGredis:6379Redis connection
OUTBOUND_DELIVERY_SYNC_KEY_PREFIXhsqlagent:outbound-delivery:同じkey namespace

SQL concurrency coordination

変数単一インスタンス分散構成用途
SQL_CONCURRENCY_PROVIDERMemoryRedisSQL concurrency limiter provider
SQL_CONCURRENCY_CONNECTION_STRINGredis:6379Redis connection
SQL_CONCURRENCY_FAILURE_MODEFailClosedFailCloseddistributed coordination 失敗時の behavior
SQL_CONCURRENCY_KEYhsqlagent:sql-concurrency同じshared coordination key
SQL_CONCURRENCY_LEASE_SECONDS3030lease duration

metadata discovery、Query、DML planning/execution、health 関連の SQL work は、制限付き runtime path を通ります。SQL 同時実行上限を process 単位ではなく cluster 全体へ適用する必要がある場合は、distributed SQL concurrency を使用してください。

オブザーバビリティ

変数用途
PROMETHEUS_ENABLEDfalsePrometheus HTTP listener を有効化
PROMETHEUS_HOST0.0.0.0metrics listener bind host
PROMETHEUS_PORT9000別 listener の metrics port。有効時は 1–65535 を検証
OTLP_ENDPOINT絶対 HTTP(S) OTLP collector endpoint
OTEL_SERVICE_NAMEhs-sql-agentOpenTelemetry service name。空白不可

Prometheus は意図的に Admin/MCP application port とは別の listenerで提供されます。OTLP_ENDPOINT を設定すると、v2.0.2 は SQL compile-evidence の tracing / log integration を含む telemetry を export します。

詳しくは オブザーバビリティと監査運用 を参照してください。

Logging

変数
LOGGING_EFCORE_COMMAND_LOGLEVELWarning
LOGGING_DEFAULT_LOGLEVELInformation
LOGGING_ASPNETCORE_LOGLEVELWarning

通常の EF Core command logging を Warning に保つことで、本番時の不要に大量な SQL command trace を抑えられます。

Docker 環境と組み込み .NET の capability options

Docker / ToolBox environment は、完全な standalone server 向け設定サーフェスです。一方、新しい NuGet 統合では AddHsSqlAgentCore() に options はなく、選択した各 capability が自分の options を所有します。

例:

  • HsSqlAgentAdminStoreOptions — Admin database provider と connection string
  • HsSqlAgentRuntimeOptions — cache、rate limiting、synchronization、SQL concurrency、DML approval storage、bootstrap、operability
  • HsSqlAgentBuiltInAuthOptions — JWT、password reset/SMTP、enterprise identity/OIDC
  • McpOptions — public MCP endpoint と HMAC secret
  • TelemetryOptions — Prometheus と OTLP settings

HsSqlAgentServiceOptions は従来の aggregate compatibility DTO としてのみ残ります。未選択の capability は options を割り当てたり検証したりしないため、AddHsSqlAgentHostAuthorization(...) を使う embedded host に HsSqlAgent の JWT、SMTP、password-reset、OIDC 設定は不要です。

モジュール型 API は既存コードの default を維持します。.env.example は standalone ToolBox path の deployment example であり、すべての embedded host が全 capability を設定しなければならないという意味ではありません。

詳しくは ASP.NET Core 連携 を参照してください。