TenkaCloud Docs

セキュリティと来歴モデル Stable

問題パックは、再現可能で、改ざんを検出できるものでなければなりません。以下の事実は、 パックマニフェストの設計上不活性(inert-by-design)なスキーマと、パックインストーラーの 不変スナップショット / ロックモデルから導出された規範的リファレンスです。

保証

Inert manifest (no executable hooks) Stable
v1 manifests carry no author credentials, remote URLs, scripts, or executable hooks. The schema is .strict(), so every unknown top-level field is rejected.
Immutable content-addressed snapshots Stable
Installing a pack hashes a canonical, sorted file list and the bytes of each file into a SHA-256 content digest. Re-installing the same id+version with a different digest fails closed.
Pinned Git provenance Stable
A git-sourced pack records the HTTPS repository URL (credentials stripped), the resolved immutable 40-hex commit, and the subdir. Fetch is shallow, hooks-disabled, and resolves only the pinned commit — never a floating ref.
No remote / mutable sources Stable
The only source kinds are 'local' (a directory) and 'git' (a pinned commit). There is no mutable / floating reference path and no runtime code execution during install.

来歴の記録方法

インストールされたすべてのリビジョンは、コンテンツダイジェストとソース種別とともに ロックに記録されます。git をソースとするパックはさらに、HTTPS リポジトリ URL (認証情報は除去済み)、解決済みの不変な 40 桁 16 進コミット、およびサブディレクトリを 記録します。コンテンツダイジェストはソース種別に依存しないため、取得方法にかかわらず、 同じバイト列からは常に同じダイジェストが生成されます。

パックにできないこと

v1 マニフェストでは、スクリプト、ライフサイクルフック、リモート URL、認証情報を 宣言できません。インストール時にランタイムのコード実行は一切行われません。Git の フェッチは shallow かつフック無効で行われ、ピン留めされたコミットのみを解決します。 浮動するブランチやタグを追跡することはありません。

関連: パックマニフェストリファレンス