The request is to turn on HOS segments for hmi-qa so it behaves like our INT and UAT environments. The Orion config change is small and ready. It will not take effect until COM (Compliance, which owns the HOS Segment service) onboards hmi-qa to the segment service.
hmi-qa is missing from the HOS Segment allowlist in pltsci-asclepius. That means it has no denormalizer, no SQS queue, no SSM queue parameter and no OpenSearch index. Orion would have nowhere to send events, and the API would have no index to read. Merge the deploy PR together with COM's onboarding change, not ahead of it.
HOS_SEGMENT_ENABLED is already "true" for hmi-qa. It inherits the values.yaml default, and values.dev.yaml does not change it.HOS_SEGMENT_API_URL is empty, so client-web has no segment API to call.HosSegmentDispatchSqsListener) runs synchronously whenever the flag is set. It looks up /hmi-qa/sqs/hos-segment/denormalizer-queue-url in SSM. If that parameter is missing, it throws Unable to determine SQS Queue URL. hmi-qa is probably raising this on every duty-status change already. Check Datadog for env:hmi-qa to confirm.Each environment's segments live in their own index, named after ORION_ENV. Every read is also checked against the caller's deployment.
On a duty-status event, sends {guid, recordStatus} to the queue registered for ORION_ENV.
One per environment. Reads that tenant's MySQL read replica. Not created for hmi-qa.
hos_event_segment_hmi-qa. Created by the Migrator. Does not exist yet.
Selects the index from the environment header and rejects a deployment_id that does not match the user's Auth0 org.
Because the index is selected by environment, sharing DEPLOYMENT_CODE PSI with demo does not mix their data. The /int or /qa path on hos-dev only selects API Gateway settings such as Auth0 config. It does not choose which data is returned.
The aim is for hmi-qa to work like the INT and UAT environments without standing up a new environment.
| Option | Change | Like INT? | Risk |
|---|---|---|---|
| A Chosen |
Point hmi-qa at https://hos-dev.pltsci.com/int |
Yes. This is the INT stage on hos-dev, and demo already uses it. |
Low. Data stays on the dev event bus, AMQP and Kinesis, which matches hmi-qa's dev level. |
| B | Point hmi-qa at https://hos-dev.pltsci.com/qa |
Equivalent, using the QA stage | Low |
| C | Point hmi-qa at https://hos.pltsci.com/int (the pre-prod service) |
Same URL as INT | Medium to high. A dev-level environment would call a pre-prod service that never receives its data. |
| D | Turn segments on in a pre-prod HMI environment instead (hmi-paccar-int or hmi-preseries) |
Exactly like INT | Low, but it changes a different environment than the ticket names |
File: charts/orion-config/environments/dev/hmi-qa.yaml. Rendering the chart with these values puts both keys in the global ConfigMap.
customer: "hmi-qa"
global:
data:
DEPLOYMENT_CODE: "PSI"
+ HOS_SEGMENT_API_URL: "https://hos-dev.pltsci.com/int"
+ HOS_SEGMENT_ENABLED: "true"
hmi-qa to FS_DEV_ALLOWED_ENVIRONMENTS in packages/asclepius-hos-segment/deploymentAllowList.ts and deploy the stack./hmi-qa/rds/orion/hos-segments-identifier and the /hmi-qa/rds/orion/hos-segment-readonly secret exist. If either is missing, the stack build silently leaves the tenant out.hmi-qa to create hos_event_segment_hmi-qa.make install_config for hmi-qa, then restart the pods so they pick up the new ConfigMap./int is the stage they want hmi-qa to use.pltsci-asclepius clone was last fetched around 2026-07-27. hmi-qa may have been added since then.environment header from the client and does not check it against the token. A user signed in to another PSI environment could set environment: hmi-qa. The deployment ID check is the only thing stopping them, and PSI environments may share that ID. This is not a blocker for this ticket.| Repo | Location | Shows |
|---|---|---|
| pltsci-orion | orion-hos/src/app/Listeners/HosSegmentDispatchSqsListener.php:51 | Queue lookup by ORION_ENV |
| pltsci-orion | orion-clientweb/src/app/Services/ClientWebAppEnvironmentService.php:23 | Sends the segment URL to client-web |
| pltsci-asclepius | asclepius-hos-segment/handleOrionEnvironment.ts:39 | Denormalizer runs with ENVIRONMENT set to the Orion env |
| pltsci-asclepius | asclepius-elasticsearch/Index/Index.ts:116 | Index name is hos_event_segment_<env> |
| pltsci-asclepius | asclepius-hos-segment/api/HosSegments/context.ts:54 | Index chosen from the environment header |
| pltsci-asclepius | asclepius-hos-segment/api/HosSegments/HosSegmentsResolver.ts:432 | Deployment ID check |
| pltsci-asclepius | asclepius-hos-segment/deploymentAllowList.ts | FS dev allowlist (no hmi-qa) |
| sre-toolkit | orion-architecture/components/hos-segment.md | Segment service architecture |