This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.
FleetInventoryService keeps the operated product and its instances: for each customer tenant and environment, the release it runs, its region, state (provisioning, running, degraded, upgrading, suspended, off-boarding) and health observed every two minutes through the product gateway and the HealthChecks aggregator. It records which template, blueprint and agent releases generated the product, so a template upgrade knows which products it affects, and the managed edition (self-operated, managed, managed-plus) from the owner's subscription (D34), which sets the objective floors and the on-call commitment. Product objectives are defined here and registered with the Observability platform's SLO service, whose breaches mark instances degraded.
flowchart LR
S["FleetInventoryService"]
FleetRolloutService["FleetRolloutService"] -->|grpc| S
FleetIncidentService["FleetIncidentService"] -->|grpc| S
StudioBff["StudioBff"] -->|sync-http| S
S -->|grpc| ReleaseService["ReleaseService"]
S -->|grpc| RuntimeEnvironmentService["RuntimeEnvironmentService"]
S -->|grpc| SloService["SloService"]
S -->|grpc| FactoryCommercialService["FactoryCommercialService"]
S -->|sync-http| ext_generated_products["ext-generated-products"]
S -. "ProductOnboarded" .-> E_ProductOnboarded(("event"))
S -. "ProductInstanceStateChanged" .-> E_ProductInstanceStateChanged(("event"))
S -. "ProductObjectiveDefined" .-> E_ProductObjectiveDefined(("event"))
Hold "Alt" / "Option" to enable pan & zoom
Instances change release through promotions and rollouts, never by hand; version skew across a product's instances is a metric and is bounded by the rollout policy. A self-operated product is inventoried for upgrade offers but not operated.
OperatedProduct — A generated product under fleet operation: its project, the generating template and blueprint releases, its product gateway (GW-07), its current product release, support edition and the customer tenants it serves. (catalog entry)
Field
Type
Required
Description
productId
string
yes
tenantId
string
yes
The Factory tenant that owns the product.
projectId
string
yes
name
string
yes
generatedBy
json
yes
Template, blueprint and agent release ids.
currentReleaseId
guid
no
edition
enum:ManagedEdition
yes
gatewayRef
string
yes
GW-07 endpoint reference.
instanceCount
int
yes
onboardedAt
datetime
yes
Invariants:
A product is operated only while its owner's subscription covers a managed edition; SelfOperated products are inventoried, not operated.
Instances inherit the product's release unless a rollout wave says otherwise; version skew across instances is visible and bounded by the rollout policy.
ProductObjective — An objective for a product (availability, latency, error rate, support response) per edition, defined here and measured by the Observability platform's SLO service with the product's instances as subjects. (catalog entry)
Field
Type
Required
Description
objectiveId
guid
yes
tenantId
string
yes
productId
string
yes
kind
string
yes
target
decimal
yes
window
string
yes
sloId
guid
no
Objective registered with SloService.
editionFloor
enum:ManagedEdition
yes
Invariants:
Edition floors cannot be loosened per product; a customer may buy a stricter edition, not a weaker objective.