コンテンツにスキップ
HaneDOCSEN

API リファレンス

App Factory

登録したアプリとその配信、イメージの署名と SBOM。

App Factory。登録したアプリ(factory/v1alpha1 Application)と、その配信(静的なファイルの一式)、コンテナのイメージの署名と SBOM。 最新の配信は、入口の /apps/{組織}/{プロジェクト}/{環境}/{アプリ}/ で認証なしに出す(アプリの画面からの API の呼出しは、ふつうの入口を通る)

説明は公開 API の契約(OpenAPI)から生成しています。

GET /v1/factory/applications
GET /v1/factory/applications/{name}/deployments
POST /v1/factory/applications/{name}/deployments
GET /v1/factory/builds
POST /v1/factory/builds
GET /v1/factory/builds/{id}
GET /v1/factory/images
POST /v1/factory/images
GET /v1/factory/images/{digest}
GET /v1/factory/images/{digest}/sbom
GET /v1/factory/images/{digest}/registration

GET/v1/factory/applications

definitions:read が必要。有効なバージョンのアプリと、いま出している配信

  • 200 — object: アプリ
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/applications/{name}/deployments

definitions:read が必要。新しい順に 20 件

名前 場所 型 必須 説明
name path string はい
  • 200 — object: 配信
  • default — Problem: RFC 9457 Problem Details

POST/v1/factory/applications/{name}/deployments

definitions:release が必要。ファイルの一式(index.html を含む 200 件・10 MiB まで。中身は base64)を置き、 そのアプリの最新の配信にする。配れるのは決めた拡張子(HTML・JS・CSS・JSON・画像・フォント・テキスト)だけ。 spec.image を持つアプリには置けない(CONFLICT)。イメージは公開ゲートを通して登録する

名前 場所 型 必須 説明
name path string はい
Idempotency-Key header string 副作用を伴う POST ではサーバーが必須にする。SDK は無ければ自動で付けるので、型では省略できる

application/json

名前 型 必須 説明
files object[] はい
  • 201 — Deployment: 配信
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/builds

definitions:read が必要。ビルドの記録を新しい順に 20 件。app を省くとプロジェクトのすべてのアプリのビルドを返す (最初のビルドは Application を有効にする前に動くため)

名前 場所 型 必須 説明
app query string
  • 200 — object: ビルド
  • default — Problem: RFC 9457 Problem Details

POST/v1/factory/builds

definitions:release が必要。ビルドの前にソースの一式を確かめて、結果を記録する。違反があれば status が refused の記録を返す。 ソースは保存しない。結果のイメージは、署名の Statement の predicate.build で記録に結び付く。 検査から 1 時間のうちにイメージを登録しないと、記録は expired になり、そのビルドのイメージは受けない

名前 場所 型 必須 説明
Idempotency-Key header string 副作用を伴う POST ではサーバーが必須にする。SDK は無ければ自動で付けるので、型では省略できる

application/json

名前 型 必須 説明
app string はい
commit string 作業ツリーが手元のコミットと同じときの、そのコミット
toolchain BuildToolchain はい
files object[] はい
  • 201 — AppBuild: ビルドの記録
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/builds/{id}

definitions:read が必要

名前 場所 型 必須 説明
id path string はい
  • 200 — AppBuild: ビルドの記録
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/images

definitions:read が必要。この環境に登録したイメージを新しい順に 100 件

  • 200 — object: イメージ
  • default — Problem: RFC 9457 Problem Details

POST/v1/factory/images

definitions:release が必要。公開ゲートを通ったことの署名(DSSE の封筒)と SBOM を確かめて登録する。 同じ digest を登録し直すと、署名と SBOM を置き換える。Application の image.digest は、登録した digest でなければ有効にできない

名前 場所 型 必須 説明
Idempotency-Key header string 副作用を伴う POST ではサーバーが必須にする。SDK は無ければ自動で付けるので、型では省略できる

application/json

名前 型 必須 説明
attestation ImageAttestation はい
sbom string はい CycloneDX の JSON の base64
  • 201 — AppImage: 登録したイメージ
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/images/{digest}

definitions:read が必要。登録したイメージ。なければ NOT_FOUND

名前 場所 型 必須 説明
digest path string はい
  • 200 — AppImage: イメージ
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/images/{digest}/sbom

definitions:read が必要。登録した SBOM をそのまま返す

名前 場所 型 必須 説明
digest path string はい
  • 200 — object: CycloneDX の JSON
  • default — Problem: RFC 9457 Problem Details

GET/v1/factory/images/{digest}/registration

definitions:read が必要。登録した署名と SBOM を、登録の要求の本文と同じ形で返す。昇格先の環境がこれを登録し、 自分の信頼する鍵で確かめ直す。署名の保存を始める前に登録したイメージは NOT_FOUND

名前 場所 型 必須 説明
digest path string はい
  • 200 — object: 署名と SBOM
  • default — Problem: RFC 9457 Problem Details