本文へ移動

2026-05-01 時点の資料です。読みやすさのために、一部の文字の色を濃くしています。

松葉/ Matsuba

社内ユーザと外部企業の担当者の業務ファイル共有を、Web アプリケーションで完結させるための新しい社内基盤です。本資料はその全体像と詳細を、機能・要件・技術・設計・運用の 6 つの視点から伝えるための紹介サイトです。

Prepared for: システム担当のメンバー・管理職 Version 1.0 2026-05-18
01

最初に押さえてほしい数字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 を拒否します。

02

このサイトでわかることWhat this site covers

本資料は 10 個のテーマページで構成されています。冒頭から順に読むと全体像が掴めますし、関心のあるテーマから読み始めても構いません。

01 · Overview

プロダクトの概要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 など)を日本語で解説します。

読む
03

設計の核Four pillars

松葉 / Matsuba を「これまでの社内アプリと違う」たらしめている設計判断を 4 つに絞ってお示しします。詳細は 構成・設計・運用 の各ページに譲ります。

Service Topology

4 サービス分離デプロイ

Web / API / Drive 同期 / ウイルススキャン を Cloud Run 上の独立したサービスとして配備し、定期処理は Cloud Run Jobs に集約しました。役割を分けることで個別にスケールでき、片方の不具合が他に伝播しにくい構成です。

Defense in Depth

多層ウイルススキャン

クライアントでの拡張子・マジックバイト検証、5 つに分離した Cloud Storage バケット(未検査 / 検査済み / 隔離 / ミラー〔ウイルス定義〕/ 共有 ZIP)、ClamAV による本体スキャン、Google Drive 側の標準スキャンを多層で組み合わせます。

Audit Integrity

追記専用の監査ログ

監査ログは追記専用の RLS(行レベルセキュリティ)で UPDATE・DELETE を拒否し、Supabase の自動バックアップに加え、25 ヶ月を超えた月次パーティションを Cloud Storage に退避します。20 年運用に耐える設計です。

Three-Layer Auth

三層の認可

セッション検証はプロキシ層(Next.js の proxy.ts)、ロール判定はルート層(Better Auth の accessControl)、データの可視範囲は DB 層(PostgreSQL の RLS)。同じ判断を 3 箇所で重ねがけして、抜けを防ぎます。

04

このドキュメントの読み方How to read

推奨の読み順: 概要 → 機能 → 要件 → 採用技術 → 構成 → 設計 → 運用 → 開発計画 → デザイン → 用語集。前半 4 つで「何を作るか」、後半 4 つで「どう作るか・どう運用するか」を扱います。

専門用語について: 本文中で初めて登場する専門用語には、括弧で日本語の補足を添えています(例: Cloud Run(コンテナを HTTP リクエストごとに起動するサーバレス基盤))。また 用語集 ページに再掲しています。

以降のページへ

次のページ: プロダクトの概要(松葉 / Matsuba が何をするものかを、業務文脈で説明します)