松葉/ Matsuba
社内ユーザと外部企業の担当者の業務ファイル共有を、Web アプリケーションで完結させるための新しい社内基盤です。本資料はその全体像と詳細を、機能・要件・技術・設計・運用の 6 つの視点から伝えるための紹介サイトです。
最初に押さえてほしい数字At a glance
松葉 / Matsuba がどれくらいの規模感のもので、どれくらいの期間運用される前提かを 4 つの数字でお示しします。
Users
2区分の利用者
社内のスタッフ(Google 認証)と、社外の取引先・委託先・顧客の担当者(個人単位の登録)。
Lifetime
最長 20年運用
20 年間の運用を見据え、監査ログのパーティション分割や年次の鍵ローテーションなど、長期運用前提の設計を取り入れています。
Services
4 + 1サービス分離
Web / API / Drive 同期 / ウイルススキャン の 4 サービスと、定期バッチ用の 1 ジョブを Cloud Run 上で分離デプロイ。
Audit Trail
2年保持 + 退避
監査ログ(操作履歴)は 2 年オンライン保持に加え、Cloud Storage へ退避して一定期間保管します。追記専用 RLS(行レベルセキュリティ)で UPDATE・DELETE を拒否します。
このサイトでわかることWhat this site covers
本資料は 10 個のテーマページで構成されています。冒頭から順に読むと全体像が掴めますし、関心のあるテーマから読み始めても構いません。
プロダクトの概要What we build & why
松葉 / Matsuba が何をするものか、誰のためのもので、いま社内のどんな課題を置き換えるのか。ユースケースとスコープ外を簡潔にお伝えします。
読む 02 · Features機能の全体像Features for users & admins
利用者向けの機能(Box・ファイル・共有リンク・通知)と管理者向けの機能(17 画面のダッシュボード)を、機能カテゴリで一望できます。
読む 03 · Requirements要件Functional & non-functional
10 のカテゴリに分かれた機能要件と、性能・可用性・セキュリティ・監査・コンプライアンスの非機能要件を、数値と判断基準で明示します。
読む 04 · Tech Stack採用技術Selected technologies
フロントエンド・バックエンド・データベース・クラウド・CI/CD・監査の各レイヤで採用した技術と、その選定理由を一覧化しています。
読む 05 · Architectureシステム構成Runtime & data flow
Cloud Run × 4 + Jobs × 1 の分離デプロイ、5 つのストレージバケット、Pub/Sub による非同期処理、Drive との片方向同期を図解します。
読む 06 · Design設計の指針Architectural rules
クリーンアーキテクチャ(4 層構造)、モノレポでの型共有、行レベルセキュリティ、テスト戦略、命名規則など、コードベース全体に通底する設計ルールです。
読む 07 · Operations運用と信頼性Reliability & ops
多層のウイルススキャン、追記専用の監査ログ、保持期間とリーガルホールド、Drive アーカイブ参照、月次運用と年次のシークレットローテーションをまとめます。
読む 08 · Roadmap開発計画と工数Phases & effort
9 つの開発フェーズの依存関係、ガントスケジュール、工数の見立て、設計難易度と実装難易度の評価をお示しします。
読む 09 · Design SystemデザインシステムBrand & UI tokens
ブランド「松葉」の由来、配色(Teal #0E7C75 主体)、タイポ(明朝 + ゴシック + Inter)、角丸・コンポーネント方針を一望できます。
読む 10 · Glossary用語集Glossary of terms
本資料に登場する専門用語(Cloud Run / RLS / OTP / Resumable Upload / WIF / Pub/Sub など)を日本語で解説します。
読む設計の核Four pillars
松葉 / Matsuba を「これまでの社内アプリと違う」たらしめている設計判断を 4 つに絞ってお示しします。詳細は 構成・設計・運用 の各ページに譲ります。
4 サービス分離デプロイ
Web / API / Drive 同期 / ウイルススキャン を Cloud Run 上の独立したサービスとして配備し、定期処理は Cloud Run Jobs に集約しました。役割を分けることで個別にスケールでき、片方の不具合が他に伝播しにくい構成です。
多層ウイルススキャン
クライアントでの拡張子・マジックバイト検証、5 つに分離した Cloud Storage バケット(未検査 / 検査済み / 隔離 / ミラー〔ウイルス定義〕/ 共有 ZIP)、ClamAV による本体スキャン、Google Drive 側の標準スキャンを多層で組み合わせます。
追記専用の監査ログ
監査ログは追記専用の RLS(行レベルセキュリティ)で UPDATE・DELETE を拒否し、Supabase の自動バックアップに加え、25 ヶ月を超えた月次パーティションを Cloud Storage に退避します。20 年運用に耐える設計です。
三層の認可
セッション検証はプロキシ層(Next.js の proxy.ts)、ロール判定はルート層(Better Auth の accessControl)、データの可視範囲は DB 層(PostgreSQL の RLS)。同じ判断を 3 箇所で重ねがけして、抜けを防ぎます。
このドキュメントの読み方How to read
推奨の読み順: 概要 → 機能 → 要件 → 採用技術 → 構成 → 設計 → 運用 → 開発計画 → デザイン → 用語集。前半 4 つで「何を作るか」、後半 4 つで「どう作るか・どう運用するか」を扱います。
専門用語について: 本文中で初めて登場する専門用語には、括弧で日本語の補足を添えています(例: Cloud Run(コンテナを HTTP リクエストごとに起動するサーバレス基盤))。また 用語集 ページに再掲しています。
次のページ: プロダクトの概要(松葉 / Matsuba が何をするものかを、業務文脈で説明します)