Skip to content

auth middlewareを追加#131

Merged
mizunoryuki merged 3 commits into
mainfrom
108/add-middleware
Jun 4, 2026
Merged

auth middlewareを追加#131
mizunoryuki merged 3 commits into
mainfrom
108/add-middleware

Conversation

@mizunoryuki

Copy link
Copy Markdown
Collaborator

issue番号

変更内容(写真か動画も一緒に)

tokenを持っているアプリじゃないと認証できないように変更

影響範囲(あれば)

Copilot AI review requested due to automatic review settings June 4, 2026 06:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

kaede API に環境変数 KAEDE_API_SHARED_TOKEN による shared token 認証 middleware を追加し、token を持つクライアントのみが /api/* を利用できるようにする PR です(callback/health check は例外)。

Changes:

  • /api/* に shared token 認証 middleware を適用(/api/trajectories/callback は除外)
  • KAEDE_API_SHARED_TOKEN を runtime config に追加し、各環境の .env.example と README に利用方法を追記
  • middleware 本体および配線のテストを追加

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
README.md shared token 認証の仕様・設定方法・例外パスを追記
deploy/env/test.env.example KAEDE_API_SHARED_TOKEN の例を追加
deploy/env/staging.env.example KAEDE_API_SHARED_TOKEN の例を追加
deploy/env/production.env.example KAEDE_API_SHARED_TOKEN の例を追加
deploy/env/local.env.example local で無効化できるよう空値の例を追加
apps/kaede/src/server.ts /api/* に middleware を適用し callback を exempt に設定
apps/kaede/src/server.test.ts createApp レベルでの認証配線テストを追加
apps/kaede/src/middleware/api-shared-token.ts shared token 認証 middleware を新規追加
apps/kaede/src/middleware/api-shared-token.test.ts middleware の単体テストを追加
apps/kaede/src/config/runtime.ts runtime config に apiSharedToken を追加
Comments suppressed due to low confidence (1)

apps/kaede/src/config/runtime.ts:69

    • 問題: KAEDE_API_SHARED_TOKENprocess.env からそのまま読み込んでおり、前後空白の混入や change_me_* の placeholder のままのデプロイを検出できません。
  • 理由: 空白混入は正しい token を送っても一致せず 401 になります。また staging/production で placeholder のままだと推測可能な token で保護され、セキュリティ事故の原因になります。
  • 修正案: .trim() で正規化し、APP_ENV !== 'local' のとき change_me_ のような placeholder を拒否して起動時にエラーにしてください。
export const getAppRuntimeConfig = (): AppRuntimeConfig => {
  appRuntimeConfig ??= {
    apiSharedToken: process.env.KAEDE_API_SHARED_TOKEN,
    env: getOptionalEnv('APP_ENV', 'local'),
    deployRef: getOptionalEnv('APP_DEPLOY_REF', 'unknown'),
    deployedAt: getOptionalEnv('APP_DEPLOYED_AT', 'unknown'),
    host: getOptionalEnv('HOST', '0.0.0.0'),
    port: parsePositiveIntegerEnv('PORT', defaultPort),
    revision: getOptionalEnv('APP_REVISION', 'unknown'),
  }

Comment thread apps/kaede/src/middleware/api-shared-token.ts Outdated
Comment thread apps/kaede/src/server.test.ts
@mizunoryuki mizunoryuki merged commit 56554ad into main Jun 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants