コンテンツへスキップ
商品 · 読了時間 6 分

WITHMIA v1.0.5 — セキュリティ、品質、そして請求書

API全体へのレート制限、GitHub ActionsによるCI/CDパイプライン、自動テストのスイート、完成した紹介プログラム、そしてWITHMIAのブランドをまとったPDF請求書の生成をお届けします。

W

WITHMIAチーム

WITHMIA

注記(2026年7月): BusinessプランとEnterpriseプランは、現在TeamMaxという名称になっています。価格は変わりません。

v1.0.4では、持続可能な収益モデルを組み立てました。v1.0.5で固めるのは土台そのものです。APIの保護、コード品質の自動チェック、そして本格的な請求書。このアップデートで、WITHMIAは安心して規模を広げられるプラットフォームになります。

レート制限:すべてのルートを守る

APIのすべてのルートに、きめ細かいレート制限をかけました。処理の種類に応じて、6種類のリミッターが働きます。

リミッター対象ルート上限
apiプロフィール、チケット、チャネル、ナレッジベース、設定60 req/分
chatwoot-proxy会話とメッセージのリアルタイムプロキシ120 req/分
evolutionWhatsAppのインスタンス(Evolution API)60 req/分
integrationsカレンダー、商品、売上、外部連携60 req/分
billingサブスクリプション、チェックアウト、超過分、請求書20 req/分
admin管理画面30 req/分

なぜ重要なのか

レート制限がなければ、悪意のある相手がひとりいるだけで(あるいはクライアント側のバグひとつで)API全体が飽和します。この保護によって、次のことが得られます。

  • 不正利用の防止 — ボットやスクレイパーがエンドポイントを叩き続けられなくなります
  • 高負荷でも安定 — トラフィックが急増しても、APIは予測どおりに応答します
  • 金銭面の保護 — 課金のエンドポイントは20 req/分と、とくに厳しく守っています
  • Chatwootに最適化 — チャットのプロキシはリアルタイム処理のため、上限をもっとも高く(120 req/分)しています

各リミッターは、認証済みユーザーごとに適用されます。公開リクエストの場合はIPごとです。レスポンスにはX-RateLimit-LimitX-RateLimit-RemainingRetry-Afterという標準のヘッダーが含まれます。

CI/CD:GitHub Actionsによる自動デプロイ

WITHMIAに、継続的インテグレーションと継続的デリバリーの完全なパイプラインが加わりました。mainへのプッシュのたびに、次の処理が自動で走ります。

バックエンド(PHP)

  • パイプラインのサービスとしてPostgreSQL 16 + Redis 7を起動
  • Composerによる依存関係のインストール
  • Pestによるテストスイート全体の実行
  • 隔離されたテスト用の環境変数

フロントエンド(TypeScript/React)

  • npmによる依存関係のインストール
  • ESLint — スタイルとエラーの検証
  • TypeScript — プロジェクト全体の型チェック
  • ビルド — すべてが解決することを確かめるための完全なコンパイル

デプロイ

  • Railwayへの自動デプロイ。実行はmainブランチからのみ
  • シークレットRAILWAY_TOKENで保護
  • テストとビルドが通った場合にだけ実行

テストが1つでも失敗するか、TypeScriptが型エラーを見つけると、デプロイは自動的に止まります。壊れたコードが本番に上がる余地はありません。

Pestによる自動テスト

WITHMIA初の自動テストスイートです。事業にとってもっとも重要な部分を押さえています。

ユニットテスト

  • CurrencyService — 国からの通貨判定、ゲートウェイの振り分け(CLPはFlow、それ以外はdLocal)、現地価格の正しさ
  • BillingConfig — プラン構成(Free、Pro、Business、Enterprise)、超過分の価格、FlowとdLocalの設定、年間割引の検証
  • OverageService — パックあたりの価格、超過メッセージ数に応じたコスト計算

機能テスト

  • APIのエンドポイント — ヘルスチェック、認証ガード、スロットリングの動作、404の扱い
  • モデル — factory patternによるUser、Company、Subscriptionの作成

各テストはRefreshDatabaseのおかげでまっさらなPostgreSQLのデータベース上で走るため、テスト同士が独立し、何度でも同じ結果を再現できます。

紹介プログラムが完成

紹介のしくみが、空のスタブから完全な実装になりました。

どう動くのか

  1. あなたの会社がコードを発行します — 形式はWM-XXXXXX(英数字6文字)
  2. そのコードを他社と共有します
  3. 相手企業が契約時に適用すると3か月間10%の割引を受けられます
  4. あなたには紹介実績が積み上がります — コードが何回使われたかをシステムが記録します

業務ルール

  • 自分のコードは使えません(自己紹介の防止)
  • 同じ企業が同じコードを2回適用することはできません
  • 割引は設定可能です(割引率、適用月数、利用回数の上限)
  • コードには有効期限を設定できます
  • コードを発行できるのは、有効なプランを契約している企業だけです

新しいエンドポイント

  • GET /api/subscription/referral-code — 自社のコードを取得または発行
  • POST /api/subscription/apply-referral — 紹介コードを適用(スタブとしては既にありましたが、今回から実際に動きます)

本格的なPDF請求書

WITHMIAのブランドをまとった、新しい請求書生成のしくみです。

Invoiceモデル

  • 自動採番 — 形式はWM-YYYY-XXXXX(例:WM-2026-00001)
  • 税額の計算 — CLPでの支払いには19%を自動で適用
  • 明細 — 品目、プラン、請求サイクル
  • リレーション — CompanyおよびSubscriptionに紐づけ

請求書の自動生成

支払いが確定した時点で、請求書はユーザーの操作なしに自動で作成されます。

  • Flow.cl — Webhookで支払いが確定したとき(status === 2)
  • dLocal — dLocalのWebhookで支払いが確定したとき
  • Flow Subscription — 継続課金の更新のたび(初回の請求書か更新かを記録します)

各請求書には、支払い方法、取引の参照番号、金額、通貨、税の内訳が記録されます。

PDFのダウンロード

InvoiceServiceは、次の要素を備えた整ったHTML文書を生成します。

  • ゴールドのアクセント(#FFD700)を用いたWITHMIAのロゴとブランド表現
  • 発行元企業と宛先企業の情報
  • 小計、税、合計の内訳を示す明細テーブル
  • 支払い情報:方法、参照番号、日付
  • 印刷に最適化されたレスポンシブなデザイン

dompdfがインストールされていれば実際のPDFを生成します。入っていない場合は、window.print()を組み込んだ印刷向けのHTML版を返します。

新しいエンドポイント

  • GET /api/subscription/invoices — 自社の直近50件の請求書一覧
  • GET /api/subscription/invoices/{id}/pdf — 請求書をPDF/HTMLでダウンロード

技術的なまとめ

変更点ファイル影響範囲
レート制限AppServiceProvider + routes/api.phpリミッター6種、18以上のルートグループ
CI/CD.github/workflows/ci.yml + .env.ci3つのジョブ(バックエンド、フロントエンド、デプロイ)
テストtests/内の5ファイル23件以上のテストケース(ユニット + 機能)
紹介プログラムモデル2つ + マイグレーション + コントローラー一式そろった状態
請求書Invoiceモデル + InvoiceService + マイグレーションWebhookでの自動作成

この先の予定

品質を支えるインフラが整ったことで、2026年Q2のロードマップは効果の大きい機能に集中します。

  • PWA / モバイルアプリ — モバイルファーストのラテンアメリカでは最優先です
  • CSATアンケート — 競合がどこも備えている機能です
  • AIの解決率分析 — AIによる解決の指標
  • WhatsAppの一斉配信 — 大規模キャンペーン

WITHMIA v1.0.5は、いちばん華やかなアップデートではありません。それでも、安心して眠れるようにしてくれる一手です。テスト済みのコード、守られたAPI、自動で発行される請求書

WITHMIAを開く → app.withmia.comで無料で試す →

ラベル

アップデート v1.0.5 プロダクト セキュリティ テスト CI/CD 紹介プログラム 請求書 PDF

シェア

Twitter LinkedIn WhatsApp

コメント

敬意をもってご記入ください。メールアドレスは公開されません。

関連記事

これをあなたのビジネスでも実現しませんか?

14日間無料でお試しください。クレジットカードは不要です。

14日間無料で試す