Back to skills
SKILL.md
Artifacts
ASecurityファイル本体をキューに載せず、オブジェクトストレージを介して非同期に解析する。API は取込要求を受け付け、ワーカーは保存済みファイルを解析して結果を DB に保存する。
- 50 stars
- 0 votes
- 0 copies
- 0 views
- Added November 7, 2026
Works with
Security analysis
100/100Pro scans all 21 files and shows the line behind each finding
npx -y skills add iwasa-kosui/tanteki --skill artifacts --agent claude-codeAre you the author of Artifacts?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/iwasa-kosui-artifacts-cfa17d40)# ファイル取込の設計
## 背景と目的
ファイル本体をキューに載せず、オブジェクトストレージを介して非同期に解析する。API は取込要求を受け付け、ワーカーは保存済みファイルを解析して結果を DB に保存する。
## 目標と非目標
### 目標
- ファイルをオブジェクトストレージへ保存する。
- 保存先をキューへ登録する。
- ワーカーが保存先からファイルを読み、解析結果を DB へ保存する。
### 非目標
- ファイル本体をキューへ登録する。
- キューへの登録失敗時の回復方法を決める。
## 設計
### 処理の流れ
1. API がファイルをオブジェクトストレージへ保存する。
2. 保存に成功したら、API が保存先をキューへ登録する。
3. ワーカーがキューから保存先を取得する。
4. ワーカーがオブジェクトストレージからファイルを読み取る。
5. ワーカーが解析結果を DB へ保存する。
ファイル本体をキューへ載せる案は採用しない。キューの上限が1MBであり、対象ファイルの上限10MBを超えるためである。
### 保存に失敗した場合
オブジェクトストレージへの保存に失敗した場合、API は503を返し、保存先をキューへ登録しない。
### キューへの登録に失敗した場合
キューへの登録失敗時の回復方法は未決定である。この設計では回復処理を定めない。
## 代替案と不採用理由
| 案 | 判断 | 理由 |
|---|---|---|
| 保存先をキューへ登録する | 採用 | ファイル本体をキューへ載せずに非同期化できる |
| ファイル本体をキューへ登録する | 不採用 | 10MBのファイルが1MBの制限を超える |
## 影響
非同期化により、利用者への解析結果の提示は遅れる。キューへの登録失敗時の回復方法が未決定であるため、登録失敗時の動作は追加の設計が必要である。
## システムの到達範囲
API、オブジェクトストレージ、キュー、ワーカー、解析処理、DB を対象とする。解析結果を利用者へ提示する具体的な方法は、資料に記載がないため対象範囲に含めない。
## 手順の到達範囲
本書は、API からワーカーが解析結果を DB へ保存する処理の設計を扱う。API の実装手順、キューへの登録失敗時の回復手順、運用時の復旧手順は定めない。
## 可逆性
キューへの登録失敗時の回復方法が未決定であるため、現時点で切戻しや再処理の方法は定められない。回復方法を決定する際は、保存済みファイルの扱いも合わせて定義する必要がある。
## 未解決点
- キューへの登録に失敗した場合の回復方法。
- キューへの登録失敗時に、オブジェクトストレージへ保存済みのファイルをどう扱うか。
- 利用者へ解析結果を提示する方法と、提示までの状態管理。Files in this skill
- adr-boundary.1.with_skill.md
- adr-boundary.1.without_skill.md
- adr-boundary.2.with_skill.md
- adr-boundary.2.without_skill.md
- canonical-reference.1.with_skill.md
- canonical-reference.1.without_skill.md
- canonical-reference.2.with_skill.md
- canonical-reference.2.without_skill.md
- comparison-rfc.1.with_skill.md
- comparison-rfc.1.without_skill.md
- comparison-rfc.2.with_skill.md
- comparison-rfc.2.without_skill.md
- design-tradeoff.1.with_skill.md
- design-tradeoff.1.without_skill.md
- design-tradeoff.2.with_skill.md
- design-tradeoff.2.without_skill.md
- incident-record.1.with_skill.md
- incident-record.1.without_skill.md
- incident-record.2.with_skill.md
- incident-record.2.without_skill.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.