feat: runtime manager

This commit is contained in:
Ilia Denisov
2026-04-28 20:39:18 +02:00
committed by GitHub
parent e0a99b346b
commit a7cee15115
289 changed files with 45660 additions and 2207 deletions
+133
View File
@@ -58,6 +58,15 @@ components:
idempotency_key: game-lobby:game-456:application-submitted:user-42
occurred_at_ms: "1775121700002"
payload_json: '{"game_id":"game-456","game_name":"Orion Front","applicant_user_id":"user-42","applicant_name":"Nova Pilot"}'
- name: runtimeImagePullFailed
summary: Administrator email notification about a failed engine image pull.
payload:
notification_type: runtime.image_pull_failed
producer: runtime_manager
audience_kind: admin_email
idempotency_key: runtime-manager:game-789:image-pull-failed:1775121700003
occurred_at_ms: "1775121700003"
payload_json: '{"game_id":"game-789","image_ref":"galaxy/game:1.4.7","error_code":"image_pull_failed","error_message":"manifest unknown","attempted_at_ms":1775121700003}'
schemas:
NotificationIntentEnvelope:
type: object
@@ -98,6 +107,9 @@ components:
- lobby.race_name.registration_eligible
- lobby.race_name.registered
- lobby.race_name.registration_denied
- runtime.image_pull_failed
- runtime.container_start_failed
- runtime.start_config_invalid
description: |
Exact v1 notification type catalog. `lobby.invite.revoked`
deliberately remains outside the supported catalog because it
@@ -108,6 +120,7 @@ components:
- geoprofile
- game_master
- game_lobby
- runtime_manager
description: |
Stable producer identifier. The exact producer value is frozen per
`notification_type` by the v1 catalog.
@@ -419,6 +432,51 @@ components:
payload_json:
contentSchema:
$ref: '#/components/schemas/LobbyRaceNameRegistrationDeniedPayload'
- if:
properties:
notification_type:
const: runtime.image_pull_failed
required:
- notification_type
then:
properties:
producer:
const: runtime_manager
audience_kind:
const: admin_email
payload_json:
contentSchema:
$ref: '#/components/schemas/RuntimeImagePullFailedPayload'
- if:
properties:
notification_type:
const: runtime.container_start_failed
required:
- notification_type
then:
properties:
producer:
const: runtime_manager
audience_kind:
const: admin_email
payload_json:
contentSchema:
$ref: '#/components/schemas/RuntimeContainerStartFailedPayload'
- if:
properties:
notification_type:
const: runtime.start_config_invalid
required:
- notification_type
then:
properties:
producer:
const: runtime_manager
audience_kind:
const: admin_email
payload_json:
contentSchema:
$ref: '#/components/schemas/RuntimeStartConfigInvalidPayload'
GeoReviewRecommendedPayload:
type: object
additionalProperties: true
@@ -697,3 +755,78 @@ components:
reason:
type: string
minLength: 1
RuntimeImagePullFailedPayload:
type: object
additionalProperties: true
required:
- game_id
- image_ref
- error_code
- error_message
- attempted_at_ms
properties:
game_id:
type: string
minLength: 1
image_ref:
type: string
minLength: 1
error_code:
type: string
minLength: 1
error_message:
type: string
minLength: 1
attempted_at_ms:
type: integer
minimum: 1
RuntimeContainerStartFailedPayload:
type: object
additionalProperties: true
required:
- game_id
- image_ref
- error_code
- error_message
- attempted_at_ms
properties:
game_id:
type: string
minLength: 1
image_ref:
type: string
minLength: 1
error_code:
type: string
minLength: 1
error_message:
type: string
minLength: 1
attempted_at_ms:
type: integer
minimum: 1
RuntimeStartConfigInvalidPayload:
type: object
additionalProperties: true
required:
- game_id
- image_ref
- error_code
- error_message
- attempted_at_ms
properties:
game_id:
type: string
minLength: 1
image_ref:
type: string
minLength: 1
error_code:
type: string
minLength: 1
error_message:
type: string
minLength: 1
attempted_at_ms:
type: integer
minimum: 1